我有一个索引的存储布尔字段,我试图将其用作过滤器:
<field name="is_instrumental" type="boolean" indexed="true" stored="true" />
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将其用作 fq 参数时,查询返回零结果:
select?q=*:*&fq=is_instrumental:true&wt=xml&indent=true
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">true</str>
<str name="q">*:*</str>
<str name="wt">xml</str>
<str name="fq">is_instrumental:true</str>
</lst>
</lst>
<result name="response" numFound="0" start="0"></result>
</response>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了我能想到的所有组合(true、false、1、0、TRUE、FALSE,也在引号中),无论我尝试什么,它都不会返回任何内容。其他字段(整数或字符串)上的过滤器工作得很好。使用 Solr 4.1。
我缺少什么?
编辑:
solrconfig.xml: http: //pastebin.com/kGWhQBma
schema.xml: http: //pastebin.com/uqnYuuHR
您的查询语法没有任何问题,&fq=is_instrumental:true
应该可以工作。
我的猜测是,您正在使用 /select 请求处理程序的自定义版本,该处理程序正在实现自定义查询解析器,例如eDisMax(扩展 Dismax)解析器。也许该&uf
参数已被设置为防止现场搜查。您可以检查 solrconfig.xml 并了解<requestHandler name="/select" class="solr.SearchHandler">
配置的默认值是如何定义的吗?
归档时间: |
|
查看次数: |
9363 次 |
最近记录: |