You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Arsen Li (JIRA)" <ji...@apache.org> on 2015/03/17 00:03:38 UTC
[jira] [Comment Edited] (SOLR-7249) Solr engine misses null-values
in "OR null" part for eDisMax parser
[ https://issues.apache.org/jira/browse/SOLR-7249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14364071#comment-14364071 ]
Arsen Li edited comment on SOLR-7249 at 3/16/15 11:02 PM:
----------------------------------------------------------
Jack, Erick, sorry for my ignorance. SOLR/Apache community/site is big, so I bit lost here :)
I updated issue description by adding both parsers debug output (only most meaningful part)
Also, I am bit confused seeing that both parsers showing me "text:area" in debug (not sure is this expected or not)
Jack, thanks for the point about "-area", I tried different cases - same result (LuceneQParser finds needed record, ExtendedDismaxQParser - not)
PS: going to raise this issue on users list as should be done before.
was (Author: barracuda477):
Jack, Eric, sorry for my ignorance. SOLR/Apache community/site is big, so I bit lost here :)
I updated issue description by adding both parsers debug output (only most meaningful part)
Also, I am bit confused seeing that both parsers showing me "text:area" in debug (not sure is this expected or not)
Jack, thanks for the point about "-area", I tried different cases - same result (LuceneQParser finds needed record, ExtendedDismaxQParser - not)
PS: going to raise this issue on users list as should be done before.
> Solr engine misses null-values in "OR null" part for eDisMax parser
> -------------------------------------------------------------------
>
> Key: SOLR-7249
> URL: https://issues.apache.org/jira/browse/SOLR-7249
> Project: Solr
> Issue Type: Bug
> Components: query parsers
> Affects Versions: 4.10.3
> Environment: Windows 7
> CentOS 6.6
> Reporter: Arsen Li
>
> Solr engine misses null-values in "OR null" part for eDisMax parser
> For example, I have following query:
> ((*:* AND -area:[* TO *]) OR area:[100 TO 300]) AND objectId:40105451
> full query path visible in Solr Admin panel is
> select?q=((*%3A*+AND+-area%3A%5B*+TO+*%5D)+OR+area%3A%5B100+TO+300%5D)+AND+objectId%3A40105451&wt=json&indent=true
> debug part of response is below:
> --------------------------------------
> "rawquerystring": "((*:* AND -area) OR area:[100 TO 300]) AND objectId:40105451",
> "querystring": "((*:* AND -area) OR area:[100 TO 300]) AND objectId:40105451",
> "parsedquery": "+((+MatchAllDocsQuery(*:*) -text:area) area:[100 TO 300]) +objectId:40105451",
> "parsedquery_toString": "+((+*:* -text:area) area:[100 TO 300]) +objectId: \u0001\u0000\u0000\u0000\u0000\u0000\u0013\u000fkk",
> "explain": {
> "40105451": "\n14.3509865 = (MATCH) sum of:\n 0.034590688 = (MATCH) product of:\n 0.069181375 = (MATCH) sum of:\n 0.069181375 = (MATCH) sum of:\n 0.069181375 = (MATCH) MatchAllDocsQuery, product of:\n 0.069181375 = queryNorm\n 0.5 = coord(1/2)\n 14.316396 = (MATCH) weight(objectId: \u0001\u0000\u0000\u0000\u0000\u0000\u0013\u000fkk in 1109978) [DefaultSimilarity], result of:\n 14.316396 = score(doc=1109978,freq=1.0), product of:\n 0.9952025 = queryWeight, product of:\n 14.38541 = idf(docFreq=1, maxDocs=1300888)\n 0.069181375 = queryNorm\n 14.38541 = fieldWeight in 1109978, product of:\n 1.0 = tf(freq=1.0), with freq of:\n 1.0 = termFreq=1.0\n 14.38541 = idf(docFreq=1, maxDocs=1300888)\n 1.0 = fieldNorm(doc=1109978)\n"
> },
> "QParser": "LuceneQParser",
> ...
> --------------------------------------
> so, it should return record if area between 100 and 300 or area not declared.
> it works ok for default parser, but when I set "edismax" checkbox checked in Solr admin panel - it returns nothing ("area" for objectId=40105451 is null).
> Request path is following
> select?q=((*%3A*+AND+-area%3A%5B*+TO+*%5D)+OR+area%3A%5B100+TO+300%5D)+AND+objectId%3A40105451&wt=json&indent=true&defType=edismax&stopwords=true&lowercaseOperators=true
> debug response is below
> --------------------------------------
> "rawquerystring": "((*:* AND -area) OR area:[100 TO 300]) AND objectId:40105451",
> "querystring": "((*:* AND -area) OR area:[100 TO 300]) AND objectId:40105451",
> "parsedquery": "(+(+((+DisjunctionMaxQuery((text:*\\:*)) -DisjunctionMaxQuery((text:area))) area:[100 TO 300]) +objectId:40105451))/no_coord",
> "parsedquery_toString": "+(+((+(text:*\\:*) -(text:area)) area:[100 TO 300]) +objectId: \u0001\u0000\u0000\u0000\u0000\u0000\u0013\u000fkk)",
> "explain": {},
> "QParser": "ExtendedDismaxQParser",
> "altquerystring": null,
> "boost_queries": null,
> "parsed_boost_queries": [],
> "boostfuncs": null,
> --------------------------------------
> However, when I move query from "q" field to "q.alt" field - it works ok, query is
> select?wt=json&indent=true&defType=edismax&q.alt=((*%3A*+AND+-area%3A%5B*+TO+*%5D)+OR+area%3A%5B100+TO+300%5D)+AND+objectId%3A40105451&stopwords=true&lowercaseOperators=true
> note, asterisks are not saved by editor, refer to http://stackoverflow.com/questions/29059460/solr-misses-or-null-query-when-parsing-by-edismax-parser
> if needed more accurate syntax
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org