0
如何在XmlQueryParser語法中獲得此標準lucene查詢?Solr Lucene XmlQueryParser跨度不排除排除
headline:(new -york)
這是我到目前爲止有:
{!xmlparser}
<SpanNot fieldName="headline">
<Include>
<SpanTerm>new</SpanTerm>
</Include>
<Exclude fieldName="headline">
<SpanTerm>york</SpanTerm>
</Exclude>
</SpanNot>
我本來不包括字段名=「標題」爲排除節點,但我加了它,當我一直在得到「約克」頭條新聞。
這裏有一些結果被未來通過:
{"id":243832340000000092, "headline":"New look pour New York"},
{"id":243661152000000019, "headline":"New York/New Market Project"},
{"id":243959040000000448, "headline":"New York Backs New Transmission Lines"}
下面是一些在響應調試輸出:
"rawquerystring":"{!xmlparser}\n<SpanNot fieldName=\"headline\">\n <Include>\n\t<SpanTerm>new</SpanTerm>\n </Include>\n <Exclude fieldName=\"headline\">\n\t<SpanTerm>york</SpanTerm>\n </Exclude>\n</SpanNot>",
"querystring":"{!xmlparser}\n<SpanNot fieldName=\"headline\">\n <Include>\n\t<SpanTerm>new</SpanTerm>\n </Include>\n <Exclude fieldName=\"headline\">\n\t<SpanTerm>york</SpanTerm>\n </Exclude>\n</SpanNot>",
"parsedquery":"SpanBoostQuery(spanNot(headline:new^1.0, headline:york^1.0, 0, 0)^1.0)",
"parsedquery_toString":"spanNot(headline:new^1.0, headline:york^1.0, 0, 0)^1.0",
"QParser":"XmlQParser"
問題是爲什麼我收到紐約在我的結果?
好的,所以你說SpanNot的工作是找到一個跨度,包括世界各地的(瘋狂的大或瘋狂的簡單),但排除任何比賽?如果是這樣,我想我已經開始明白了。我將使用哪種SpanQuery來排除任何匹配「約克」的文檔? –
Brandon
我的目標:查找包含單詞「新」的文檔,排除包含單詞「約克」的文檔。 – Brandon
@Brandon - 如果你只是想找到任何匹配「新」,但不是「約克」的東西,我根本不會使用SpanQuery。像這樣的一個查詢:'標題:(new-york)'會做到這一點。使用xmlparser,你可以使用布爾查詢,參見[示例這裏](https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-XMLQueryParser)。 – femtoRgon