首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >dismax和EdisMax之间的区别是什么?

dismax和EdisMax之间的区别是什么?
EN

Stack Overflow用户
提问于 2012-11-28 17:32:23
回答 2查看 21.6K关注 0票数 25

我想知道DisMax和EDisMax之间的区别是什么?了解这一点有什么有用的参考资料吗?另外,我想知道哪些查询DisMax无法生成EDisMax能够生成结果的结果。

EDisMax有一些查询参数,如boost参数、ps参数、pf2参数;但除了这个查询参数之外,EDisMax如何优于DisMax;这两个.What因素之间如何处理查询使EDisMax比DisMax更好。

某些查询在DisMax中无法提供结果,但EDisMax为这些查询提供了结果。

我用谷歌搜索了DisMax和EDisMax之间的区别。我发现,在EDisMax中使用的参数只是DisMax和EDisMax之间的区别;但我希望在演示中能从技术上向其他人解释。

OR video&fl=filename,score&hl=true&hl.fl=content contentenstem filename&hl.zetaContentField=content (或video&fl=filename,score&hl=true&hl.fl=content内容)

上面查询EDisMax的产生大约238个结果;但是DisMax产生0个结果。那么用这两个解析器处理这个查询有什么不同呢?是什么让EDisMax生成我想知道的result.Thats……

EN

回答 2

Stack Overflow用户

发布于 2012-11-28 20:20:31

由于Dismax有很多限制,所以增加了EDismax查询解析器。

查看SOLR-1553

首先(如文档中所示):

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

  • 支持完整的lucene查询语法在缺乏语法errors
  • supports "and"/"or“to mean "AND"/"OR”的情况下,在lucene语法模式
  • 中出现语法错误时,改进了特殊字符的智能部分转义,以防止它们出现错误。在这种模式下,字段查询、+/-和短语查询仍然是通过单词二元语法进行的supported.
  • Improved邻近度提升...这避免了需要文档中100%的单词才能获得任何提升的问题,以及在单个field.
  • advanced停止字中处理所有单词的问题……在查询的强制部分中不需要停用字,但在邻近度提升部分中仍然使用(如果被索引)。如果一个查询由所有的停止字组成(例如,to be或not to be),那么所有的都将通过“required.
  • Supports”参数来提升。与dismax bf参数类似,但将函数查询相乘,而不是将其添加到

中。

  • 支持纯负面嵌套查询...因此,像+foo (-foo)这样的查询将匹配

的所有文档

然而,正如您可能会做的那样,使用大量相关的JIRA来提高查询解析能力并支持更多特性。

通读JIRA可以非常有洞察力:)

票数 27
EN

Stack Overflow用户

发布于 2012-11-28 17:45:32

一般而言,EDisMax是DisMax的扩展版本。您可以在以下链接中找到这两个解析器的良好描述和差异。

  1. DisMax Query Parser
  2. Extended DisMax Query Parser
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13601853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档