【问题标题】:Mongodb full text search matching precesionMongodb全文搜索匹配精度
【发布时间】:2013-07-27 01:33:42
【问题描述】:

我正在尝试使用 mongodb 全文搜索来显示用户正在输入的建议。 我已经完成了所有必要的步骤来创建文本索引并在数据库上启用全文搜索功能,除了结果的精度之外,一切都运行良好。

我使用正则表达式来实现相同的逻辑,例如,当用户键入“blue”时,有一个包含“bluetooth”的建议,类似于“blue*”,但使用 mongos 全文搜索我只得到一个结果当我输入“蓝牙”时。

我尝试使用 " 字符来完全匹配,例如'\"blue\"' 以及我能想到的所有其他可以想象的组合,但都是徒劳的。

所以我的问题是是否有办法在 mongo 中实现这一点? 如果 mongo 支持正则表达式中使用的 * 字符或使用的算法尝试对单词进行精确匹配?

问候, 马克西莫斯

【问题讨论】:

    标签: mongodb full-text-search mongodb-query


    【解决方案1】:

    目前,MongoDB 的文本搜索不支持部分词的搜索。该命令匹配完整的词干词 - 'bluetooth' 和 'bluetoot' 很可能来自同一个词根,这就是为什么该搜索词有效而 'blue' 无效的原因。 (Source.) MongoDB 的文本搜索使用开源词干分析器 Snowball。

    如果您仍然对实现自动完成感兴趣,那么使用正则表达式或外部自动完成库(可能是Typeahead.js?)可能是您最好的选择。例如,如果您想建议文章标题,您可以每隔几天将标题缓存到一个 json 文件,然后将该 json 数据传递给 Typeahead.js。

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 2019-09-22
      • 2015-10-09
      • 1970-01-01
      相关资源
      最近更新 更多