0

我是 Solr 的新手。我已经将 3 个字段从 MySql 索引到 solr。身份证,名字,姓氏。我想搜索 first_name 和 last_name。在 schema.xml 我写道:

<fields>
<field name="id" type="string" indexed="true" stored="true"/>
<field name="first_name" type="text_general" indexed="true" stored="true"/>
<field name="last_name" type="text_general" indexed="true" stored="true"/>
</fields>
<uniqueKey>id</uniqueKey>
<defaultSearchField>first_name</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>

我必须在这里写的内容是先在 first_name 中搜索,然后在 last_name 中搜索。我必须在哪里优先考虑领域?请帮我。

4

1 回答 1

1

您必须在查询中定义它。我建议您为此使用 requestHandler:

<requestHandler name="bcn_jug_en" class="solr.SearchHandler" enable="true">
 <lst name="defaults">
   <str name="defType">edismax</str>
   <str name="qf">first_name^10 last_name^5</str>
   <str name="mm">100%</str>
</lst>

http://searchhub.org/2010/05/23/whats-a-dismax/

于 2013-05-08T12:09:16.673 回答