Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Not A Problem
-
5.2.1
-
None
-
None
Description
Queries with two strings between brackets are parsed as range queries even when missing the " TO " keyword. This creates performance problems from extremely expensive unintended range queries.
Example: [string1 string2]
"rawquerystring": "[string1 string2]",
"querystring": "[string1 string2]",
"parsedquery": "(+DisjunctionMaxQuery((text:[string1 TO string2])))/no_coord",
"parsedquery_toString": "+(text:[string1 TO string2])",
"explain": {},
"QParser": "ExtendedDismaxQParser"
Same behavior for LuceneQParser:
"rawquerystring": "[string1 string2]",
"querystring": "[string1 string2]",
"parsedquery": "text:[string1 TO string2]",
"parsedquery_toString": "text:[string1 TO string2]",
"explain": {},
"QParser": "LuceneQParser"
Three strings between brackets is parsed correctly by ExtendedDismaxQParser:
"rawquerystring": "[string1 string2 string3]",
"querystring": "[string1 string2 string3]",
"parsedquery": "(+(DisjunctionMaxQuery((text:string1)) DisjunctionMaxQuery((text:string2)) DisjunctionMaxQuery((text:string3))))/no_coord",
"parsedquery_toString": "+((text:string1) (text:string2) (text:string3))",
"explain": {},
"QParser": "ExtendedDismaxQParser"
Query examples from live search application (copy and pasted book titles):
The biology of cancer [electronic resource]
Prostate cancer principles and practice. [1st ed.]