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 03:14:37 UTC
[07/12] lucene-solr:jira/solr-8593: SOLR-9666: SolrJ LukeResponse
support dynamic fields
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/782923b8
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/782923b8
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/782923b8
Branch: refs/heads/jira/solr-8593
Commit: 782923b894a7eda6cc8940e83d1e8b4863d7d063
Parents: 6c3c6bc
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:00 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/782923b8/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index bc939b9..20873c3 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -116,6 +116,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/782923b8/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/782923b8/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