在文本搜索字符串中包含数字会阻止其被发现

时间:2019-04-29 15:11:03

标签: mongodb mongodb-query

Mongo文本搜索词干不适用于带有数字的文本。

数据库:

{"fieldA": "value"},
{"fieldA": "value1"},

搜索是:

{"fieldA": "value"}

返回1个对象

{"fieldA": "value"}

但不是

{"fieldA": "value1"}

我在这里想念东西吗?

1 个答案:

答案 0 :(得分:0)

您什么都不丢失,似乎mongo不会从字符串中提取数字。

一个巧妙的小技巧,以了解mongo词干是如何运行的:

db.collection.find({$text: {$search: 'sleeping1'}}).explain();

在获胜计划的结果中,我们可以查看parsedTextQuery JSON:

{
      "terms": [
        "sleeping1"
      ],
      "negatedTerms": [],
      "phrases": [],
      "negatedPhrases": []
    }

现在我们是否运行相同的查询,但改为使用“ sleeping”:

{
  "terms": [
    "sleep"
  ],
  "negatedTerms": [],
  "phrases": [],
  "negatedPhrases": []
}

在进行文本索引编制时,mongo还不存在。