我有一些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"}]
}}
答案 0 :(得分:0)
最初我虽然是语言字段的fieldType问题,但事实并非如此。由于字段类型是字符串,请确保您没有提及过滤器中语言的字符串部分。
无论在索引时添加了什么值,它都必须与过滤器完全相同。那么它会对你有用。
答案 1 :(得分:0)
在语言字段上添加index = true字段就可以了。谢谢Suhel Meman!