我正在使用 solrnet。我有一个标题和描述字段。我需要同时搜索两个字段。我该怎么做呢?
问问题
3841 次
3 回答
2
如果您使用的是标准请求处理程序 -
创建一个新字段 title_description 并将标题和描述字段复制到此字段。
将该字段用作默认搜索字段。
<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
于 2011-10-16T08:56:53.680 回答
0
请尝试在下面的方法中传递包含多个字段名称和搜索文本的字符串数组。我将返回 solrnet 查询以搜索具有 OR 条件的多个文件名。
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;
}
于 2017-10-11T14:17:22.140 回答