dismax和EdisMax有什么区别?

gan*_*ran 21 solr dismax edismax

我想知道DisMax和EDisMax有什么区别..?是否有任何有用的参考资料来了解这一点.另外,我想知道DisMax无法生成EDisMax能够产生结果的结果的查询是什么?

EDisMax有一些Query参数,如boost参数,ps参数,pf2参数; 但除了这个查询参数外,EDisMax如何比DisMax更好 ; 如何在这两者之间处理查询.什么因素使EDisMax比DisMax做得更好 ..

有些查询未能在DisMax中给出结果,但EDisMax为这些查询提供了结果.

我用Google搜索了DisMax和EDisMax之间的区别.我发现,EDisMax中使用的参数只是DisMax和EDisMax之间的区别; 但我期待在技术上向他人介绍一些东西.

http:// ip:8983/solr/C73/select /?defType = edismax&q = ipod OR video&fl = filename,score&hl = true&hl.fl = content contentenstem filename&hl.zetaContentField = content

对于上述查询,EDisMax产生约238个结果; 但DisMax产生0结果.那么这两个解析器处理这个查询之间的区别是什么;是什么让EDisMax产生result.Thats我想知道的....

Jay*_*dra 25

由于Dismax有很多限制,因此添加了EDismax查询解析器.

查看SOLR-1553

首先(如在文档中): -

扩展的dismax解析器基于原始的Solr dismax解析器.

  • 在没有语法错误的情况下支持完整的lucene查询语法
  • 在lucene语法模式中支持"和"/"或"表示"AND"/"OR"
  • 当存在语法错误时,会对特殊字符进行改进的智能部分转义以防止它们...在此模式下,仍然支持现场查询,+/ - 和短语查询.
  • 通过单词双字母改进了接近度提升...这可以防止需要文档中100%的单词获得任何提升的问题,以及在单个字段中包含所有单词的问题.
  • 高级停用词处理...在查询的强制部分中不需要停用词,但仍在邻近提升部分中使用(如果已编入索引).如果查询包含所有停用词(例如,要成为或不成为),那么将需要所有停用词.
  • 支持"boost"参数..就像dismax bf param一样,但是将函数查询相乘而不是添加它
  • 支持纯负的嵌套查询...所以像+ foo(-foo)这样的查询将匹配所有文档

但是,正如您所做的许多相关JIRA一样,可以提高查询解析能力并支持更多功能.

通过JIRA阅读可以非常有见地:)


Par*_*ade 4

一般来说,EDisMax 是 DisMax 的扩展版本。您可以在以下链接中找到两个解析器的详细描述和差异。

  1. DisMax 查询解析器
  2. 扩展 DisMax 查询解析器