summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/querytransform
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-06-24 11:42:26 +0200
committerJon Bratseth <bratseth@gmail.com>2020-06-24 11:42:26 +0200
commit547cee55234eb52cc8332381ee6dff219c5cd1f9 (patch)
tree06249d92218694c2e9a918277d8f53d4ca7291a4 /container-search/src/main/java/com/yahoo/prelude/querytransform
parentc2b57fddcbc9beb3b866d579c6cd68a68590651e (diff)
Segment to phrase not and when inside an expicit phrase
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/querytransform')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/querytransform/CJKSearcher.java30
1 files changed, 17 insertions, 13 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/querytransform/CJKSearcher.java b/container-search/src/main/java/com/yahoo/prelude/querytransform/CJKSearcher.java
index ae8c289a5b0..785477d6df7 100644
--- a/container-search/src/main/java/com/yahoo/prelude/querytransform/CJKSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/querytransform/CJKSearcher.java
@@ -56,26 +56,31 @@ public class CJKSearcher extends Searcher {
AndItem replacement = new AndItem();
for (ListIterator<Item> i = ((CompositeItem) root).getItemIterator(); i.hasNext();) {
Item item = i.next();
- if (item instanceof WordItem) replacement.addItem(item);
- else if (item instanceof PhraseSegmentItem) {
+ if (item instanceof WordItem)
+ replacement.addItem(item);
+ else if (item instanceof PhraseSegmentItem)
replacement.addItem(new AndSegmentItem((PhraseSegmentItem) item));
- }
- else replacement.addItem(item); // should never run, but hey... just convert and hope it's OK :)
+ else
+ replacement.addItem(item); // should never get here
}
return replacement;
- } else if (root instanceof PhraseSegmentItem) {
+ }
+ else if (root instanceof PhraseSegmentItem) {
PhraseSegmentItem asSegment = (PhraseSegmentItem) root;
- if (asSegment.isExplicit() || hasOverlappingTokens(asSegment)) return root;
- else return new AndSegmentItem(asSegment);
- } else if (root instanceof SegmentItem) {
+ if (asSegment.isExplicit() || hasOverlappingTokens(asSegment))
+ return root;
+ else
+ return new AndSegmentItem(asSegment);
+ }
+ else if (root instanceof SegmentItem) {
return root; // avoid descending into AndSegmentItems and similar
- } else if (root instanceof CompositeItem) {
+ }
+ else if (root instanceof CompositeItem) {
for (ListIterator<Item> i = ((CompositeItem) root).getItemIterator(); i.hasNext();) {
Item item = i.next();
Item transformedItem = transform(item);
- if (item != transformedItem) {
+ if (item != transformedItem)
i.set(transformedItem);
- }
}
return root;
}
@@ -96,8 +101,7 @@ public class CJKSearcher extends Searcher {
* We have overlapping tokens (see
* com.yahoo.prelude.querytransform.test.CJKSearcherTestCase
* .testCjkQueryWithOverlappingTokens and ParseTestCase for an explanation)
- * if the sum of length of tokens is greater than the lenght of the original
- * word
+ * if the sum of length of tokens is greater than the length of the original word
*/
private boolean hasOverlappingTokens(PhraseSegmentItem segments) {
int segmentsLength=0;