使用布尔参数的solr搜索查询

时间:2015-06-05 13:35:36

标签: solr solrj solr4

以下是我索引到solr的文件:

    <doc>
        <field name="definition">Bookshelf are to keep books. </field>
        <field name="whword">what</field>
        <field name="definitionKey">bookshelf</field>
    </doc>

现在我需要查询此文档。但我的要求是检查definitionkeywhword值是否相等。以下是查询:

http://localhost:8983/solr/faqcore/select?q=definitionKey:bookself&whword=null&wt=json

现在在此查询中,whword的值为null,这不等于document中的值。在这种情况下,结果应为null,但我仍然在输出中将整个文档作为json。

请提供您的建议。

1 个答案:

答案 0 :(得分:2)

首先,您无法将whword=null添加为请求参数,它必须是查询(q)或过滤查询(fq)的一部分。

然后,Solr不知道null值。你必须指定一个&#34;否定&#34;条件,在查询或过滤查询中。获取非空whword文档的条件是whword:[* TO *](请注意大写TO!),因此以下任何一项都应该有效(我在每个文章的末尾都跳过&wt=json变体):

  1. q=definitionKey:bookshelf+-whword:[*+TO+*]
  2. q=definitionKey:bookshelf+AND+NOT+whword:[*+TO+*]
  3. q=definitionKey:bookshelf&fq=-whword:[*+TO+*]