summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java
diff options
context:
space:
mode:
authorMasaru Hasegawa <haniomasali@gmail.com>2017-05-31 18:35:01 +0900
committerJim Ferenczi <jim.ferenczi@elastic.co>2017-05-31 11:35:01 +0200
commita77b38cdd1604dfa539bac36ce5a3f79f9f955a1 (patch)
tree37b43e33e8562cf8b028734e8dba7b037a6937b8 /core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java
parent258be2b135e49df263a546a67bcea9aa2c5ef283 (diff)
Fix context suggester to read values from keyword type field (#24200)
Closes #24129
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java')
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java
index 38e31ec92a..92091d8b69 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java
@@ -25,6 +25,7 @@ import org.elasticsearch.Version;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.XContentParser.Token;
+import org.elasticsearch.index.mapper.KeywordFieldMapper;
import org.elasticsearch.index.mapper.ParseContext;
import org.elasticsearch.index.mapper.ParseContext.Document;
import org.elasticsearch.index.query.QueryParseContext;
@@ -136,10 +137,14 @@ public class CategoryContextMapping extends ContextMapping<CategoryQueryContext>
IndexableField[] fields = document.getFields(fieldName);
values = new HashSet<>(fields.length);
for (IndexableField field : fields) {
- values.add(field.stringValue());
+ if (field.fieldType() instanceof KeywordFieldMapper.KeywordFieldType) {
+ values.add(field.binaryValue().utf8ToString());
+ } else {
+ values.add(field.stringValue());
+ }
}
}
- return (values == null) ? Collections.<CharSequence>emptySet() : values;
+ return (values == null) ? Collections.emptySet() : values;
}
@Override