以下是我索引到solr的文件:
<doc>
<field name="definition">Bookshelf are to keep books. </field>
<field name="whword">what</field>
<field name="definitionKey">bookshelf</field>
</doc>
现在我需要查询此文档。但我的要求是检查definitionkey
和whword
值是否相等。以下是查询:
http://localhost:8983/solr/faqcore/select?q=definitionKey:bookself&whword=null&wt=json
现在在此查询中,whword
的值为null,这不等于document中的值。在这种情况下,结果应为null,但我仍然在输出中将整个文档作为json。
请提供您的建议。
答案 0 :(得分:2)
首先,您无法将whword=null
添加为请求参数,它必须是查询(q
)或过滤查询(fq
)的一部分。
然后,Solr不知道null
值。你必须指定一个&#34;否定&#34;条件,在查询或过滤查询中。获取非空whword
文档的条件是whword:[* TO *]
(请注意大写TO
!),因此以下任何一项都应该有效(我在每个文章的末尾都跳过&wt=json
变体):
q=definitionKey:bookshelf+-whword:[*+TO+*]
q=definitionKey:bookshelf+AND+NOT+whword:[*+TO+*]
q=definitionKey:bookshelf&fq=-whword:[*+TO+*]