如何在Solr的有限字段中搜索关键字?

时间:2012-09-07 07:56:26

标签: solr solrnet

我正在开发基于ASP.NET MVC3 C#的电子商务网站。我已经在其中实施了SolrNet。有两个字段,如“CategoryId”和“ProductName”。我想在特定的CategoryID中搜索关键字。请注意,产品映射在多个类别中。所以基本上我试图通过下面的查询使用solr admin进行搜索,但没有得到确切的结果。

(CategoryID:26 AND Name:Gigabyte) OR (CategoryID:118 AND Name:Gigabyte) OR (CategoryID:121 AND Name:Gigabyte)

查询有什么问题? 如果我想在有限的类别中搜索相同的产品名称,将会询问什么?

1 个答案:

答案 0 :(得分:3)

我会利用Solr中的Filter Query来限制您给出的示例中的CategoryID结果。因此,从Solr Admin页面,单击“创建查询”部分下的完整界面链接,然后输入以下内容:

  

查询字符串:Name:Gigabyte

     

过滤查询:(CategoryId:26 OR CategoryId:118 OR CategoryId:121)

您可以通过以下方式从SolrNet执行相同的操作:

 ISolrOperations<Item> solr = ...
 var items = solr.Query(new SolrQueryByField("name","Gigabyte", new QueryOptions {
        FilterQueries = new ISolrQuery[] {
                new SolrQueryByField("CategoryID", 26),
                new SolrQueryByField("CategoryID", 118),
                new SolrQueryByField("CategoryID", 121),
        }
 });