带前缀的文本索引

时间:2019-05-12 12:13:35

标签: mongodb indexing

我正在寻找一种解决方案,以按用户名+名称和mongodb进行搜索。

我的文档有2个字段:

  • 用户名:仅空白字符a-z 0-9 -._
  • name:任意字符串

到目前为止,我发现了2种解决方案:

  • 使用常规索引为这些字段建立索引,并使用regex ^ searchTerm。*
  • 带文本字段的索引

我的常规索引问题:

  • MongoDB只能将索引与^ searchTerm一起使用。否则效率不高。因此,如果有人使用“ Sergei Rachmaninov”之类的名字,那么我就无法匹配“ Rach”一词。

我的文本索引问题:

  • 它只匹配整个单词。

所以我发现也许可以添加searchTerms数组字段或字符串。包含用户名和名称可能的值,并在其上添加文本索引。

Ex:

  • 用户名:“老虎”,
  • 名称:“约翰·里弗”,

要么作为数组

  • searchTerms:[“ t”,“ ti”,“ tig”,“ tige”,“ tiger”,“ j”,“ jo”,“ joh”, “ john”,“ r”,“ ri”,“ riv”,...]

或作为字符串

  • searchTerms:“ t tig tige tiger j jo joh john r ri riv rivive river”

您认为这是可行的解决方案吗?

还是文本索引的一种反模式使用?

0 个答案:

没有答案