我正在尝试在文档很大的数据库上实现自动完成功能。文档模型如下:
name:'book store 1',
address:'xyz'
...
books:[
{
category:'some category'
name:'book 1',
},
{
category:'some book',
name:'maybe',
},
]
用例是用户可以搜索书店的名称,书籍类别或书籍的名称。由于'categories'和'name'的值存在重叠。我想知道查询匹配的位置。因此,如果用户正在搜索“可能”,我想知道匹配的位置,以便我可以指出这是一个书名。我看过正则表达式,但这似乎并不是非常高效,因为它执行整个集合扫描并且如果它不会立即感觉就会破坏自动完成的目的。
我还查看了$ text搜索但又没有告诉我查询匹配的位置。