1

我为使用 solr 查询的存档网站集编制了索引。作为唯一键,我使用网站的 URL。我想做的是在过滤查询中使用 url 字段,以便在需要时将搜索限制在某个域。例如,我想查询“Barack Obama”,但将结果限制为“whitehouse.gov”域。对我来说听起来像是一个非常基本的用例,但是在 URL 字段上的搜索根本不会返回任何结果。这是我的配置(schema.xml):

 .
 .
 .
 <field name="collection" type="string" indexed="true" stored="true"/>
 <field name="content" type="text_de" indexed="true" stored="true" multiValued="true"/>
 <field name="date" type="string" indexed="true" stored="true"/>
 <field name="digest" type="string" indexed="true" stored="true"/>
 <field name="length" type="string" indexed="true" stored="true"/>
 <field name="segment" type="string" indexed="true" stored="true"/>
 <field name="site" type="string" indexed="true" stored="true"/>
 <field name="title" type="text_de" indexed="true" stored="true" multiValued="true"/>
 <field name="type" type="string" indexed="true" stored="true"/>
 <field name="url" type="text_en_splitting" indexed="true" stored="true"/>
 .
 .
 .

<!-- Field to use to determine and enforce document uniqueness. 
  Unless this field is marked with required="false", it will be a required field
-->
 <uniqueKey>url</uniqueKey>

这是我的查询(简化):

http://mysolrserver.com:8983/solr/select/?q=content:Barack+Obama&fq=url:whitehouse.gov

查询分析器告诉我,我的查询应该匹配:

截图 solr 分析

有谁知道为什么这不起作用?我非常感谢我能得到的任何提示!非常感谢各位!!

4

1 回答 1

2

fq=url:whitehouse.gov过滤应该起作用。

但是我看到了查询的问题q=content:Barack+Obama
你的默认搜索字段是什么?
是否删除查询组件并q=*:*为您使用返回结果。??

q=content:Barack+Obama查询实际上会产生类似的查询,content:barack defaultsearchfield:obama
因为默认搜索字段不会有 obama,因此不会产生任何结果。

于 2012-09-11T11:56:36.417 回答