将精确匹配排名最高的最佳 lucene 设置是什么

2023-12-27

当我希望精确匹配的排名高于“部分”匹配时,应使用哪些分析器进行索引和搜索?可能会在一个中设置自定义评分Similarity class?

例如,当我的索引包含car parts, car, and car shop(索引为StandardAnalyzer在 lucene 3.5 上),查询"car"结果是:

  • 汽车零件
  • car
  • car shop

(基本上按照添加的顺序返回,因为它们都获得相同的分数)。

我想看到的是car排名第一,然后是其他结果(哪个顺序并不重要,我认为分析器可以影响它)。


三场比赛全部是exact(匹配术语“car”,而不是“ca”或“ar”):)

如果这些字段(“汽车零件”、“汽车”和“汽车商店”)中没有更多内容,那么您可以使用lengthNorm() or computeNorm()(取决于 Lucene 版本),给予较短的字段更多的权重,以便汽车因较短而获得更高的分数。在 Lucene 3.3.0 中,DefaultSimilarity.computeNorm() 如下所示:

return state.getBoost() * ((float) (1.0 / Math.sqrt(numTerms)));

where numTerms是该字段中的术语总数。因此,令人惊讶的是“car”和“car shop”文档具有相同的分数,因为对于“car”,范数是 1,而对于“car shop”,范数应该是 0.7(假设 boost 为 1)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将精确匹配排名最高的最佳 lucene 设置是什么 的相关文章

随机推荐

  • 关闭呈现视图控制器

    我有以下情况 视图控制器 A gt 以模态方式呈现 gt 视图控制器 B 视图控制器 B gt 以模态方式呈现 gt 视图控制器 C 我想关闭视图控制器 C 并直接转到 A 而不是显示 B 因为当时显示 B 没有意义 我怎样才能做到这一点
  • 程序集在大数字之前打印字符

    这个程序可以很好地打印小数字 但不能打印大数字 我不知道为什么 例如print 1346269将打印为 c1346269 和print 40000将打印为 40000 就像它应该的那样 这是宏 macro print 1 mov rax 1
  • MAX 与 Top 1 - 哪个更好?

    我必须审查一些代码 并遇到了有人做过的事情 并且想不出为什么我的方法更好但可能不是的原因 那么 哪个更好 更安全 更高效 SELECT MAX a date FROM a table WHERE a primary key 5 GROUP
  • TinyMCE 4 - 将自定义样式/类/属性添加到任何 HTML 标签

    是否有任何插件 可能性允许通过 TinyMCE 4 WYSIWYG 将自定义属性添加到 HTML 标签 例如 我通过编辑器添加了此代码 而不是通过源代码 div a href uploads myfile pdf My file img s
  • 使用 JavaScript 以复利计算未来价值

    我正在尝试编写一个脚本 其中用户插入每月收入并获得 30 年后复利的未来价值 现在 我已经分配了一些值用于测试目的 Future Value var investment 800 var annualRate 2 var monthlyRa
  • 为多个 JavaScript 文件启用严格模式

    要为所有 JavaScript 启用严格模式 use strict 设置需要位于每个导入的 JavaScript 文件的顶部 第一个文件的顶部还是任何文件的顶部 似乎没有这方面的文档 Thanks 它需要位于您想要的每个脚本的顶部stric
  • 将列表转换为 R 中的数据框并添加带有子列表名称的列

    List l有三个字符串 分别命名为一 二和三 我想转换l到数据框 我需要一个附加列 其名称为n l lt list c a b c c d e c e n lt c one two three 我可以使用循环来完成此操作 但我确信有更有效
  • 三路异或类函数

    我正在尝试解决以下难题 Given a stream of numbers only 1 iteration over them is allowed in which all numbers appear 3 times but 1 nu
  • Terraform 0.12 - 从嵌套 for 循环生成地图/对象

    作为后续Terraform 0 12 嵌套 for 循环 https stackoverflow com questions 56047306 terraform 0 12 nested for loops 57280420 5728042
  • 我如何在 django 中获取 .save() 的查询?

    我正在更新 django 模型对象 当我打电话时为每个属性设置值后obj save 它给了我OperationalError 2006 MySQL server has gone away 我非常想知道是什么导致了以下错误 我怎样才能得到查
  • 存储数据的奇怪字符编码,旧脚本显示它们很好,新脚本却没有

    我正在尝试重写一个旧网站 它是波斯语 使用波斯语 阿拉伯语字符 CREATE DATABASE db DEFAULT CHARACTER SET utf8 COLLATE utf8 persian ci USE db 几乎我所有的表 列 C
  • Objective-C 的单元测试和代码覆盖框架?

    我计划为 iPhone 编写几个应用程序 想知道是否有针对 Objective C 的单元测试和代码覆盖框架 对于 iPhone 应用程序的单元测试 有OCTest http developer apple com iphone libra
  • UISearchDisplayController 就像 ios 7 日历应用程序中一样

    如何实现 我有带有搜索图标的 UIBarButtonItem 单击它后 我想在导航栏中显示搜索栏并单击cancel按钮在搜索栏中 我想显示没有搜索的导航栏 并带有按钮和标题 就像 IOS 7 日历应用程序中一样 来自苹果文档 在 iOS 7
  • java h2内存数据库错误:找不到表

    我尝试用谷歌搜索 但几乎所有此类问题的解决方案是添加 DB CLOSE DELAY 1 但是它并没有为我解决任何问题 这是我的测试课 RunWith SpringJUnit4ClassRunner class ContextConfigur
  • Spring WebClient:自动计算正文的 HMAC 签名并将其作为标头传递

    在我的 Spring Boot 应用程序中 我使用RestTemplate调用 WS 其主体 HMAC 签名应作为 HTTP 标头提供 为此 我使用了ClientHttpRequestInterceptor 基本上 我做了 Override
  • 用于创建插入脚本的 SQL 脚本

    标题有点模糊 我会解释一下 我正在编写一个 SQL 脚本来为数据库中表的每一行创建一条插入语句 纯粹是为了能够将该数据应用回另一个数据库 这是我现在所拥有的 SELECT INSERT INTO products id name descr
  • .Net Standard 2.0 中包含但 .Net Framework 4.6.1 中没有的 43 个 API 是什么?

    SO问题题为 NET 标准 API 参考 https stackoverflow com q 40923831 2314532 引用中的讨论https github com dotnet standard issues 133 https
  • 多级熊猫分组

    我需要保持 每个帐户每个团队每个股票 的位置 所以我认为熊猫groupby可能会被使用 我也尝试在数据框的评论中陈述我的问题 位置栏是我手动添加的 初始 df 我有 time account scrip buy price sell pri
  • 将图像插入文本缓冲区

    如果我放置 insert image create image tmp test png 在缓冲区中 将光标放在最后一个括号后面并使用C x C e 那么图像 tmp test png显示在缓冲区中 很简约 但 我必须将最后一个括号放在单独
  • 将精确匹配排名最高的最佳 lucene 设置是什么

    当我希望精确匹配的排名高于 部分 匹配时 应使用哪些分析器进行索引和搜索 可能会在一个中设置自定义评分Similarity class 例如 当我的索引包含car parts car and car shop 索引为StandardAnal