You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by kr...@apache.org on 2016/11/16 01:54:26 UTC
lucene-solr:branch_6x: SOLR-9666: SolrJ LukeResponse support dynamic
fields
Repository: lucene-solr
Updated Branches:
refs/heads/branch_6x 0790c34cc -> ead40a9e0
SOLR-9666: SolrJ LukeResponse support dynamic fields
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/ead40a9e
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/ead40a9e
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/ead40a9e
Branch: refs/heads/branch_6x
Commit: ead40a9e00b53620511ed243932ecaf12093aafa
Parents: 0790c34
Author: Kevin Risden <kr...@apache.org>
Authored: Tue Nov 15 18:41:11 2016 -0600
Committer: Kevin Risden <kr...@apache.org>
Committed: Tue Nov 15 18:58:54 2016 -0600
----------------------------------------------------------------------
solr/CHANGES.txt | 2 ++
.../client/solrj/response/LukeResponse.java | 31 ++++++++++++++++++++
.../solr/client/solrj/SolrExampleTests.java | 3 +-
3 files changed, 35 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ead40a9e/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index c84b018..81f9016 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -63,6 +63,8 @@ New Features
* SOLR-9633: Limit memory consumed by FastLRUCache with a new 'maxRamMB' config parameter.
(yonik, Michael Sun, shalin)
+* SOLR-9666: SolrJ LukeResponse support dynamic fields (Fengtan via Kevin Risden)
+
Optimizations
----------------------
* SOLR-9704: Facet Module / JSON Facet API: Optimize blockChildren facets that have
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ead40a9e/solr/solrj/src/java/org/apache/solr/client/solrj/response/LukeResponse.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/LukeResponse.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/LukeResponse.java
index 6e76deb..4b024e9 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/LukeResponse.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/LukeResponse.java
@@ -42,6 +42,7 @@ public class LukeResponse extends SolrResponseBase {
boolean tokenized;
String analyzer;
List<String> fields;
+ List<String> dynamicFields;
public FieldTypeInfo(String name) {
@@ -62,6 +63,10 @@ public class LukeResponse extends SolrResponseBase {
return fields;
}
+ public List<String> getDynamicFields() {
+ return dynamicFields;
+ }
+
public String getName() {
return name;
}
@@ -96,6 +101,9 @@ public class LukeResponse extends SolrResponseBase {
if ("fields".equals(key) && entry.getValue() != null) {
List<String> theFields = (List<String>) entry.getValue();
fields = new ArrayList<>(theFields);
+ } else if ("dynamicFields".equals(key) && entry.getValue() != null) {
+ List<String> theDynamicFields = (List<String>) entry.getValue();
+ dynamicFields = new ArrayList<>(theDynamicFields);
} else if ("tokenized".equals(key) == true) {
tokenized = Boolean.parseBoolean(entry.getValue().toString());
} else if ("analyzer".equals(key) == true) {
@@ -194,6 +202,7 @@ public class LukeResponse extends SolrResponseBase {
private NamedList<Object> indexInfo;
private Map<String, FieldInfo> fieldInfo;
+ private Map<String, FieldInfo> dynamicFieldInfo;
private Map<String, FieldTypeInfo> fieldTypeInfo;
@Override
@@ -206,6 +215,8 @@ public class LukeResponse extends SolrResponseBase {
NamedList<Object> schema = (NamedList<Object>) res.get("schema");
NamedList<Object> flds = (NamedList<Object>) res.get("fields");
+ NamedList<Object> dynamicFlds = (NamedList<Object>) res.get("dynamicFields");
+
if (flds == null && schema != null ) {
flds = (NamedList<Object>) schema.get("fields");
}
@@ -218,6 +229,18 @@ public class LukeResponse extends SolrResponseBase {
}
}
+ if (dynamicFlds == null && schema != null) {
+ dynamicFlds = (NamedList<Object>) schema.get("dynamicFields");
+ }
+ if (dynamicFlds != null) {
+ dynamicFieldInfo = new HashMap<>();
+ for (Map.Entry<String, Object> dynamicField : dynamicFlds) {
+ FieldInfo f = new FieldInfo(dynamicField.getKey());
+ f.read((NamedList<Object>) dynamicField.getValue());
+ dynamicFieldInfo.put(dynamicField.getKey(), f);
+ }
+ }
+
if( schema != null ) {
NamedList<Object> fldTypes = (NamedList<Object>) schema.get("types");
if (fldTypes != null) {
@@ -274,5 +297,13 @@ public class LukeResponse extends SolrResponseBase {
return fieldInfo.get(f);
}
+ public Map<String, FieldInfo> getDynamicFieldInfo() {
+ return dynamicFieldInfo;
+ }
+
+ public FieldInfo getDynamicFieldInfo(String f) {
+ return dynamicFieldInfo.get(f);
+ }
+
//----------------------------------------------------------------
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ead40a9e/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
index 88227ba..f403f3f 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
@@ -694,13 +694,14 @@ abstract public class SolrExampleTests extends SolrExampleTestsBase
luke.setShowSchema( false );
LukeResponse rsp = luke.process( client );
assertNull( rsp.getFieldTypeInfo() ); // if you don't ask for it, the schema is null
+ assertNull( rsp.getDynamicFieldInfo() );
luke.setShowSchema( true );
rsp = luke.process( client );
assertNotNull( rsp.getFieldTypeInfo() );
assertNotNull(rsp.getFieldInfo().get("id").getSchemaFlags());
assertTrue(rsp.getFieldInfo().get("id").getSchemaFlags().contains(FieldFlag.INDEXED));
-
+ assertNotNull( rsp.getDynamicFieldInfo() );
}
@Test