solr - 查询解析器 Solr ,标准查询解析器和 dismax 查询解析器之间的区别
问题描述
我浏览了 dismax 查询解析器和标准查询解析器,发现标准查询解析器在处理错误方面有所不同,因此更容易出错。那么一个比另一个强大的不同领域是什么,它们之间的具体区别是什么。
解决方案
标准查询解析器的主要优势在于它支持强大且相当直观的语法,允许您创建各种结构化查询。最大的缺点是它非常不能容忍语法错误,与 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
推荐阅读
- r - R中有没有办法做一个成对加权相关矩阵?
- azure-application-insights - Application Insights - 计算具有相同操作 ID 的两个事件之间的时间跨度?
- reactjs - 在 react-bootstrap-table 中删除行后状态未更新。有什么问题?
- amazon-web-services - 如何减少 AWS Windows EBS 根卷?
- git - Git错误:git credential-manager-core的waitpid失败:没有子进程
- vb.net - 使用 Visual Basic 从我的桌面删除图像
- azure-devops-server - 是否可以使用 OAuth 令牌克隆 Azure Devops 存储库
- css - 为多个登陆页面优化 CSS
- python - 嵌套for循环有更好的选择吗?
- c# - 如何以编程方式控制由无限递归方法调用或无限循环引起的 StackOverflow 异常?