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"));
+ }
+}