Solr Facet字段和过滤器查询之间的区别

时间:2012-07-13 19:57:51

标签: solr stress-testing

我正在使用SolrMeter来测试Apache Solr搜索引擎。 Facet字段和Filter查询之间的区别对我来说并不清楚。 SolrMeter教程将此列为Facet字段的一个例子:

content
category
fileExtension

这是过滤查询的一个例子:

category:animal

category:vegetable
categoty:vegetable price:[0 TO 10] 
categoty:vegetable price:[10 TO *] 

我很难绕过它。有人可以通过例子解释一下吗?我可以在不指定构面或过滤器的情况下使用SolrMeter吗?

2 个答案:

答案 0 :(得分:14)

Facet字段用于获取有关返回文档的统计信息 - 具体而言,对于该字段的每个值,返回的文档有多少具有该字段的值。例如,如果您有10个产品符合"软地毯"如果你面对"起源,"你可能会得到6份文件#34; Oklahoma" "德克萨斯州。"构面字段查询将为您提供数字6和4。

另一方面,过滤器查询用于通过添加另一个约束来过滤返回的结果。要记住的是,用于过滤结果的查询不会影响文档的评分或相关性。例如,您可以在索引中搜索产品,但只想返回受地理区域限制的结果。

答案 1 :(得分:2)

facet是文档的字段(类型),因此category是字段。正如安萨里所说,facet用于获取统计数据并提供分组功能。您可以在category字段上应用分组,将所有内容vegetable显示为一个组。

编辑:有关在特定字段内搜索的部分是错误的。它不会仅在字段内搜索。它应该是为搜索添加一个约束'代替。

执行category:vegetable的过滤查询将在vegetable字段中搜索category,而不会搜索文档的其他字段。它仅用于搜索特定字段而不是每个字段。有时您知道您想要的术语只在一个字段中,因此您只能搜索该字段。