【问题标题】:Possible to get words matched fuzzily by MongoDB full text search?MongoDB全文搜索可以得到模糊匹配的单词吗?
【发布时间】:2021-03-16 04:01:23
【问题描述】:

我正在编写一个显示 MongoDB 全文搜索查询结果的 UI,在每个结果中直观地突出显示匹配的搜索词;这对于完整的单词或短语匹配来说足够好,但不适用于部分/模糊匹配。

例如,如果我搜索“delete”,将得到一个包含“deletion”的搜索结果,它不包含完整的单词“delete”,因此如果我只突出显示完整的搜索词,则不会突出显示火柴。不过,我确实想要部分匹配。

当我执行查询时,有什么方法可以投影匹配的单词/子字符串集?

到目前为止,我无法在文档中找到任何暗示这是可能的内容,但我认为值得四处询问。任何帮助将不胜感激。

【问题讨论】:

  • 据我所知,有一种方法可以计算匹配百分比,但不确定是否有一些东西可以突出匹配的单词!祝你好运..
  • 是的,我正在使用元分数,这很有帮助。尽管如此,它看起来越来越像我可能不得不在客户端重复模糊匹配以获得我想要的结果。不过,仍然希望被路人的一些深奥的 mongodb 智慧证明是错误的:-)
  • @Astro,问题不在于模糊搜索工作。它缺少的是 mongodb 认为在每个查询结果中模糊匹配的单词列表,目的是在显示结果的 UI 中突出显示所有匹配的子字符串。

标签: mongodb full-text-search


【解决方案1】:

您可以使用 Mongo DB Atlas 功能,在该功能中,您可以根据 MongoDB 提供的不同 Analyzers 搜索您的文本。然后你可以像这样进行搜索:没有模糊对象,它会进行全文匹配搜索。

$search:{
 {
  index: 'analyzer_name_created_from_atlas_search',
  text: {
    query: 'Text to do a full match or fuzzy match with',
    path: 'sentence',
    fuzzy:{
      maxEdits: 2   #max 2 is allowed
    }
  }
 }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    相关资源
    最近更新 更多