Incorrect behaviour of MultiFieldQueryNodeProcessor when default operator is 'AND' [LUCENE-3355]
- Dominant language
- Java
- Stars
- 3.6k
- Forks
- 1.4k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 88
Description
StandardQueryNodeProcessorPipeline runs MultiFieldQueryNodeProcessor before GroupQueryNodeProcessor.
MultiFieldQueryNodeProcessor, if it encounters a node with no field, will do this:
```Java
return new GroupQueryNode(new BooleanQueryNode(children));
```
GroupQueryNodeProcessor comes along later on, sees that no operator is specified, so it applies the default operator, which, if set to 'AND', results in:
```Java
+properties:text +text:text
```
Which I don't think matches the intent of the multi-field processor.
---
Migrated from [LUCENE-3355](https://issues.apache.org/jira/browse/LUCENE-3355) by Trejkaz, updated Jan 23 2014
Contributor guide
Research direction
Start with StandardQueryNodeProcessorPipeline and inspect the interaction between MultiFieldQueryNodeProcessor and GroupQueryNodeProcessor when a node has no field. Reproduce the query with the default operator set to AND and verify that the resulting query matches the intended multi-field behavior without the unintended operator application.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- search
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100