Solr过滤器查询不在字段上工作

时间:2015-09-03 14:55:02

标签: solr

我有一些Solr设置,包含一些字段(见下文),还有一个语言字段。我想仅使用语言nl_NL返回结果。

但是,如果我对/solr/client/query?q=test&fq=language:nl_NL进行过滤查询,则无法获得任何结果。

似乎fq不适用于此特定字段。但是,对/solr/client/query?q=test&fq=id:1的查询工作正常。

过滤器查询是否有任何特殊要求可用于字段?以下是我schema.xml的概述。

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="title" type="text_nl" indexed="false" stored="true" />
<field name="content" type="text_nl" indexed="false" stored="true" multiValued="true" />
<field name="permalink" type="string" indexed="false" stored="true"/>
<field name="image" type="string" indexed="false" stored="true"/>
<field name="date" type="tdate" indexed="true" stored="true"/>
<field name="category" type="string" indexed="false" stored="true"/>
<field name="language" type="string" indexed="false" stored="true" />

在id上使用带有fq的查询时的结果是:

    {
  "responseHeader":{
    "status":0,
    "QTime":4,
    "params":{
      "q":"test",
      "fq":"id:3968"}},
  "response":{"numFound":1,"start":0,"docs":[
      {
        "id":"3968",
        "title":"Scotch en Soda",
        "permalink":"http://www.example.com/merken/scotch-soda/",
        "image":"http://www.example.com/SS15-SCOTCH-SODA-BRAND-PAGE-150x150.jpg",
        "date":"2015-06-22T16:02:47Z",
        "category":"brands",
        "language":"nl_NL"}]
  }}

2 个答案:

答案 0 :(得分:0)

最初我虽然是语言字段的fieldType问题,但事实并非如此。由于字段类型是字符串,请确保您没有提及过滤器中语言的字符串部分。

无论在索引时添加了什么值,它都必须与过滤器完全相同。那么它会对你有用。

答案 1 :(得分:0)

在语言字段上添加index = true字段就可以了。谢谢Suhel Meman!