Solr:如何搜索多个字段
我正在使用solrnet。 我有一个标题和描述字段。 我需要同时搜索这两个字段。 我该怎么做呢?
Jayendra的答案是正确的,但是如果你想在没有在索引时(copyFields)的单个字段中聚合数据而想要在查询时使用标准处理程序而不是dismax来执行此操作,那么在SolrNet中,您可以执行以下操作:
var query = Query.Field("title").Is(mytitle) || Query.Field("Description").Is(mydescription); var results = solr.Query(query);
有关更多信息,请参阅查询运算符和DSL 。
如果您使用的是标准请求处理程序 –
创建新字段title_description并将标题和说明字段复制到此字段。
将该字段用作默认搜索字段。
title_description
在默认搜索字段上使用搜索触发查询q –
q=bank
要么
如果您可以使用dismax或edismax查询解析器,则可以定义新的请求处理程序。
将查询字段定义为qf。
explicit edismax title description *:* 10 *,score
查询 – 将dismax作为qt参数传递,该参数将搜索标题和描述字段
q=bank&qt=dismax
请尝试在下面的方法中传递包含多个字段名称和搜索文本的字符串数组。 我将返回带有OR条件的多个字段名称的搜索的solrnet查询。
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; }