我们使用 mongo 文本索引在多个字段之间进行实体搜索。 真正让我困惑的是 mongo 的文本搜索返回的结果。
背景
假设我们有一个包含名字和姓氏字符串字段的用户集合。两个字段都添加了文本索引。
await collection.createIndex({ firstName: 'text', lastName: 'text' }, { name: 'users_text_index' });
而User集合有以下两个文档:
我们使用 NodeJs 实现了具有以下文本搜索语法的搜索(其中“关键字”是传入参数,表示最终用户使用的关键字)
{ $text: { $search: keyword } }
结果
问题
我想知道为什么,一旦我们得到完全匹配,第二个文档将不再由 mongo 返回?
除了在每个搜索字段上用正则表达式替换 $Or 条件集合替换文本搜索之外,我们还能做什么,以便始终返回所有匹配项(完全匹配和相似匹配)?
非常感谢