Mongodb全文搜索匹配precesion

max*_*sap 4 full-text-search mongodb mongodb-query

我正在尝试使用mongodb全文搜索来显示用户正在键入的建议.我已经完成了创建文本索引所需的所有必要步骤,并在数据库上启用了全文搜索功能,除了结果的精度外,一切正常.

我正在使用正则表达式实现相同的逻辑,例如当用户键入"蓝色"时,有一个建议包含'bluetooth'类似于'blue*'的东西,但是使用mongos全文搜索我只在我输入时得到一个结果'bluetoot'.

我已经尝试过使用"字符完全匹配',例如'\'blue \"'以及我能想到的所有其他可以想象的组合但是徒劳无功.

所以我的问题是,是否有办法在mongo中实现这一点?如果mongo支持regexp中使用的*字符之类的东西,或者使用过的算法尝试对单词进行精确匹配?

问候,Maximos

Ama*_*lia 8

目前,MongoDB的文本搜索不支持搜索部分单词.该命令匹配完整的词干 - 很可能'bluetooth'和'bluetoot'源于相同的根,这就是为什么搜索词工作而'blue'不工作的原因.(来源.)MongoDB的文本搜索使用开源词干分析器Snowball.

如果你仍然对实现自动完成感兴趣,使用regexp或外部自动完成库(也许是Typeahead.js?)可能是你最好的选择.例如,如果您想建议文章标题,可以每隔几天将标题缓存到一个json文件,并将该json数据传递给Typeahead.js.