diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-06-24 11:42:26 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-06-24 11:42:26 +0200 |
commit | 547cee55234eb52cc8332381ee6dff219c5cd1f9 (patch) | |
tree | 06249d92218694c2e9a918277d8f53d4ca7291a4 /container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java | |
parent | c2b57fddcbc9beb3b866d579c6cd68a68590651e (diff) |
Segment to phrase not and when inside an expicit phrase
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java index cd8579be7f0..902be7e15dd 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/AbstractParser.java @@ -326,6 +326,7 @@ public abstract class AbstractParser implements CustomParser { * * @param indexName the index name which preceeded this token, or null if none * @param token the token to segment + * @param quoted whether this segment is within quoted text * @return the resulting item */ // TODO: The segmenting stuff is a mess now, this will fix it: @@ -341,7 +342,7 @@ public abstract class AbstractParser implements CustomParser { // This can be solved by making the segment method language independent by // always producing a query item containing the token text and resolve it to a WordItem or // SegmentItem after parsing and language detection. - protected Item segment(String indexName, Token token) { + protected Item segment(String indexName, Token token, boolean quoted) { String normalizedToken = normalize(token.toString()); if (token.isSpecial()) { @@ -361,12 +362,13 @@ public abstract class AbstractParser implements CustomParser { if (segments.size() == 0) { return null; } + if (segments.size() == 1) { return new WordItem(segments.get(0), "", true, token.substring); } CompositeItem composite; - if (indexFacts.getIndex(indexName).getPhraseSegmenting()) { + if (indexFacts.getIndex(indexName).getPhraseSegmenting() || quoted) { composite = new PhraseSegmentItem(token.toString(), normalizedToken, true, false, token.substring); } else { |