DisMax用于解析用户查询,q或fq用于过滤结果

时间:2012-02-10 19:55:14

标签: php solr

我正在使用PHP来获取用户搜索查询并通过SOLR在特定字段“关键字”上运行它们,该关键字基本上包含文档中所有数据的串联。

我也在这个查询上使用facet来进一步深入研究结果集。

我的问题:

  1. 我应该使用SOLR DisMax来解析所有用户查询吗?
  2. 进行分面向下搜索是不好的做法 直接进入标准查询与关键字搜索或我应该使用 filterqueries来过滤原始标准查询及其结果集?

2 个答案:

答案 0 :(得分:3)

我会使用eDisMax,它基本上更强大,更宽容(这意味着它通常不会为格式错误的查询返回错误)。

我强烈建议您使用filter queries过滤结果(fq参数),例如点击参数,主要是出于以下原因:

  • 过滤查询不会影响solr得分
  • 过滤查询更快,因为通过filter cache
  • 独立于主查询缓存

答案 1 :(得分:2)

查询解析器的选择取决于您的要求。 Should_I_use_the_standard_or_dismax_Query_Parser

Dismax / Edismax允许您查询和增加多个字段,但在处理操作员及其支持方面存在一些限制。
如果您在单个字段上查询,则标准查询解析器可以满足要求。

正如@javanna所说 您应该始终尝试使用过滤器查询而不是搜索关键字,因为它允许filtering with cache support

相关问题