2

我正在开发基于 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)

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

4

1 回答 1

3

在您给出的示例中,我将利用 Solr 中的过滤器查询来限制 CategoryID 的结果。因此,在 Solr Admin 页面中,单击“Make a Query”部分下的 Full Interface 链接并输入以下内容:

请求参数: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),
        }
 });
于 2012-09-07T11:50:21.757 回答