我正在使用solrnet。我有一个标题和描述字段。我需要同时搜索这两个字段。我该如何做?
<defaultSearchField>title_description</defaultSearchField>
在默认搜索字段上进行搜索的查询 q 被触发 -
q=bank
如果您可以使用dismax或edismax查询解析器,您可以定义一个新的请求处理程序。
将查询字段定义为qf。
<requestHandler name="dismax" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<!-- Query settings -->
<str name="defType">edismax</str>
<str name="qf">
title description
</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
</lst>
</requestHandler>
查询 - 将dismax作为qt参数传递,这将在标题和描述字段上进行搜索
q=bank&qt=dismax
public ISolrQuery BuildQuery(string[] SearchFields, string SearchText)
{
AbstractSolrQuery firstQuery = new SolrQueryByField(SearchFields[0], SearchText) { Quoted = false };
for (var i = 1; i < SearchFields.Length; i++)
{
firstQuery = firstQuery || new SolrQueryByField(SearchFields[i], SearchText) { Quoted = false };
}
return firstQuery;
}