我正在开发基于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)
查询有什么问题? 如果我想在有限的类别中搜索相同的产品名称,将会询问什么?
答案 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),
}
});