XmlQueryParser構文でこの標準のluceneクエリを取得するにはどうすればよいですか?Solr Lucene XmlQueryParser Span除外除外除外
headline:(new -york)
は、ここで私がこれまで持っているものです。
{!xmlparser}
<SpanNot fieldName="headline">
<Include>
<SpanTerm>new</SpanTerm>
</Include>
<Exclude fieldName="headline">
<SpanTerm>york</SpanTerm>
</Exclude>
</SpanNot>
私はもともと除外ノードのためのフィールド名=「見出し」を含んでいませんでしたが、私は「ニューヨーク」を取得保管するとき、私はこれを追加しました見出し。ここで
を通じ来ている結果の一部されている:私はニューヨークを取得していますなぜ問題がある
"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"
:
{"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"}
は、ここで応答したデバッグ出力の一部です私の結果に?
オーケーをそのSpanNotの仕事(クレイジービッグまたはクレイジーシンプル)を含むスパンを見つけることですが、と一致するものは除外しますか?もしそうなら、私はそれを取得し始めていると思う。どのようなSpanQueryを使用すれば、「york」と一致するすべてのドキュメントを除外できますか? –
Brandon
私の目標:単語「new」を含む文書を検索し、単語「york」を含む文書を除外します。 – Brandon
@Brandon - "new"にマッチして "york"にマッチするものを探したいだけなら、SpanQueryをまったく使用しません。 'headline:(new -york)'のようなクエリはそれを行います。 xmlparserを使用すると、BooleanQueryを使用できます。[ここの例](https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-XMLQueryParser)を参照してください。 – femtoRgon