You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ge...@apache.org on 2019/04/02 00:40:55 UTC

[lucene-solr] branch branch_8x updated: SOLR-13362: Add 'includeIndexFieldFlags' in LukeRequest

This is an automated email from the ASF dual-hosted git repository.

gerlowskija pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/branch_8x by this push:
     new 7c0caea  SOLR-13362: Add 'includeIndexFieldFlags' in LukeRequest
7c0caea is described below

commit 7c0caeacfa4d98d9e97d5295d4d249f89da05b4b
Author: Jason Gerlowski <ge...@apache.org>
AuthorDate: Mon Apr 1 17:13:56 2019 -0400

    SOLR-13362: Add 'includeIndexFieldFlags' in LukeRequest
---
 solr/CHANGES.txt                                   |  2 +
 .../solr/client/solrj/request/LukeRequest.java     | 22 ++++++++++-
 .../solr/client/solrj/request/TestLukeRequest.java | 46 ++++++++++++++++++++++
 3 files changed, 69 insertions(+), 1 deletion(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 162a7d8..898265a 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -120,6 +120,8 @@ Bug Fixes
 
 * SOLR-13352: Remove risk of deadlock/threadleak when shutting down an Overseer(TriggerThread).  (hossman)
 
+* SOLR-13362: Add 'includeIndexFieldFlags' support to SolrJ LukeRequest (Jason Gerlowski)
+
 Improvements
 ----------------------
 
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/LukeRequest.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/LukeRequest.java
index fe14bce..6e89c84 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/LukeRequest.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/LukeRequest.java
@@ -36,6 +36,7 @@ public class LukeRequest extends SolrRequest<LukeResponse> {
   private List<String> fields;
   private int numTerms = -1;
   private boolean showSchema = false;
+  private Boolean includeIndexFieldFlags = null;
   
   public LukeRequest()
   {
@@ -87,7 +88,22 @@ public class LukeRequest extends SolrRequest<LukeResponse> {
 
   //---------------------------------------------------------------------------------
   //---------------------------------------------------------------------------------
-  
+
+  /**
+   * Choose whether /luke should return the index-flags for each field
+   *
+   * Fetching and returning the index-flags for each field in your index has non-zero cost, and can slow down requests to
+   * /luke.  Users who do not care about these values can tell Solr to avoid generating them by setting the
+   * 'includeIndexFieldFlags' flag to false, saving their requests some processing.
+   */
+  public void setIncludeIndexFieldFlags(boolean shouldInclude) {
+    includeIndexFieldFlags = shouldInclude;
+  }
+
+  public boolean getIncludeIndexFieldFlags() { return includeIndexFieldFlags; }
+
+  //---------------------------------------------------------------------------------
+  //---------------------------------------------------------------------------------
 
   @Override
   protected LukeResponse createResponse(SolrClient client) {
@@ -106,6 +122,10 @@ public class LukeRequest extends SolrRequest<LukeResponse> {
     if (showSchema) {
       params.add("show", "schema");
     }
+    if (includeIndexFieldFlags != null) {
+      params.add("includeIndexFieldFlags", includeIndexFieldFlags.toString());
+    }
+
     return params;
   }
 
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestLukeRequest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestLukeRequest.java
new file mode 100644
index 0000000..7e47f5d
--- /dev/null
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestLukeRequest.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.client.solrj.request;
+
+import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.common.params.SolrParams;
+import org.junit.Test;
+
+public class TestLukeRequest extends SolrTestCaseJ4 {
+  @Test
+  public void testSkipsIncludeIndexFieldFlagsParamWhenNotSpecified() {
+    final LukeRequest req = new LukeRequest();
+    final SolrParams params = req.getParams();
+
+    assertTrue("Expected the request to omit the 'includeIndexFieldFlags' param", params.get("includeIndexFieldFlags") == null);
+  }
+
+  @Test
+  public void testContainsIncludeIndexFieldFlagsParamWhenSpecified() {
+    LukeRequest req = new LukeRequest();
+    req.setIncludeIndexFieldFlags(true);
+    SolrParams params = req.getParams();
+
+    assertEquals("true", params.get("includeIndexFieldFlags"));
+
+    req = new LukeRequest();
+    req.setIncludeIndexFieldFlags(false);
+    params = req.getParams();
+    assertEquals("false", params.get("includeIndexFieldFlags"));
+  }
+}