首页 > 解决方案 > 查询解析器 Solr ,标准查询解析器和 dismax 查询解析器之间的区别

问题描述

我浏览了 dismax 查询解析器和标准查询解析器,发现标准查询解析器在处理错误方面有所不同,因此更容易出错。那么一个比另一个强大的不同领域是什么,它们之间的具体区别是什么。

标签: solrlucene

解决方案


标准查询解析器的主要优势在于它支持强大且相当直观的语法,允许您创建各种结构化查询。最大的缺点是它非常不能容忍语法错误,与 DisMax 查询解析器之类的东西相比,它旨在抛出尽可能少的错误。

标准查询解析器也称为 Lucene 查询解析器,因此它期望查询遵循正确的语法。

DisMax 查询解析器旨在处理用户输入的简单短语(没有复杂的语法),并根据每个字段的重要性使用不同的权重(提升)在多个字段中搜索单个术语。其他选项使用户能够根据特定于每个用例的规则(独立于用户输入)影响分数。

一般来说,DisMax 查询解析器的界面更像 Google 的界面,而不是“lucene”(又名标准)Solr 查询解析器的界面。这种相似性使 DisMax 成为许多消费者应用程序的适当查询解析器。它接受简单的语法,并且很少产生错误消息。

DisMax 查询解析器支持 Lucene QueryParser 语法的一个极其简化的子集。与在 Lucene 中一样,引号可用于对短语进行分组,而 +/- 可用于表示强制和可选子句。所有其他 Lucene 查询解析器特殊字符(AND 和 OR 除外)都被转义以简化用户体验。DisMax 查询解析器负责使用布尔子句从用户的输入构建一个好的查询,其中包含跨字段的 DisMax 查询和用户指定的提升。它还允许 Solr 管理员提供额外的提升查询、提升功能和过滤查询,以人为地影响所有搜索的结果。

有关标准查询解析器的更多信息 - https://lucene.apache.org/solr/guide/7_6/the-standard-query-parser.html,DisMax - https://lucene.apache.org/solr/guide /7_6/the-dismax-query-parser.html


推荐阅读