Solr Field不返回结果

时间:2015-07-30 12:32:20

标签: solr solrj

Solr不会返回结果,直到我为:field name添加前缀为例 我正在寻找Ajay,我需要前缀name:Ajay来获得结果。我尝试了复制标签。但它似乎没有返回结果。可以告诉我除了以下更改之外我还能改变什么。< / p>

<copyField source="name" dest="text"/>
<copyField source="last_name" dest="text"/>

2 个答案:

答案 0 :(得分:2)

配置的旧方法是schema.xml中的<defaultSearchField>。如果查询中未包含其他字段,则表示默认搜索的字段。

您可能希望在查询中使用df参数(或者如其他答案所示,将其添加为默认值),或者如果您正在使用(e)dismax处理程序( (你可能是),使用qf参数来指出要查询的字段以及不同字段之间的权重。

q=Ajay&qf=text&defType=edismax

..应该做你想做的事。

答案 1 :(得分:1)

如果查看solrconfig.xml文件,您会看到 / select requestHandler配置了默认搜索字段:

<lst name="defaults">
  <str name="df">aField</str>
</lst>

在这里,您可以输入您想要的字段,例如:

<lst name="defaults">
  <str name="df">name</str>
</lst>

您可以看到有关this subjectSolr Documentation的其他主题。

要构建可搜索字段,您可以在schema.xml中创建新字段:

<field name="searchable_field" type="text_general" indexed="true" stored="true"  multiValued="true" />

之后,您可以在新字段中复制所需的字段:

<copyField source="name" dest="searchable_field"/>
<copyField source="last_name" dest="searchable_field"/>
<copyField source="birthday" dest="searchable_field"/>
<copyField source="location" dest="searchable_field"/>

要完成,您只需将此新字段添加到solrconfig.xml

<lst name="defaults">
  <str name="df">searchable_field</str>
</lst>