diff options
author | Masaru Hasegawa <haniomasali@gmail.com> | 2017-05-31 18:35:01 +0900 |
---|---|---|
committer | Jim Ferenczi <jim.ferenczi@elastic.co> | 2017-05-31 11:35:01 +0200 |
commit | a77b38cdd1604dfa539bac36ce5a3f79f9f955a1 (patch) | |
tree | 37b43e33e8562cf8b028734e8dba7b037a6937b8 /core/src/main/java | |
parent | 258be2b135e49df263a546a67bcea9aa2c5ef283 (diff) |
Fix context suggester to read values from keyword type field (#24200)
Closes #24129
Diffstat (limited to 'core/src/main/java')
-rw-r--r-- | core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java | 9 |
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 |