kme*_*hta 38 full-text-search mongodb
我有一个数组"键"的索引,我用它来为我的应用程序提供全文功能.
随着2.4.3的发布,我想使用"text"索引类型.我在我的数组"keys"上保证了一个"文本"索引类型,它似乎工作速度超快(比我的旧关键字全文方法更快).
问题是,我的应用程序假设字段是包容性的(AND).默认情况下,文本搜索OR我的参数.
有没有人知道一种包含文本搜索的方法?
例如:
db.supplies.runCommand("text", {search:"printer ink"})
Run Code Online (Sandbox Code Playgroud)
应该使用打印机和墨水返回结果,而不是使用打印机或墨水的所有结果.
ale*_*cxe 68
尝试:
db.supplies.runCommand("text", {search:"\"printer\" \"ink\""})
Run Code Online (Sandbox Code Playgroud)
另外,这是来自docs的引用:
如果搜索字符串包含短语,则搜索与搜索字符串中的任何其他术语执行AND; 例如,搜索"\"twinkle twinkle \"little star"搜索"twinkle twinkle"和("little"或"star").
希望有所帮助.
您可以将每个单词用双引号括起来:
let keywords = ctx.params.query.split(/\s+/).map(kw => `"${kw}"`).join(' ');
match.$text = { $search: keywords, $caseSensitive: false };
Run Code Online (Sandbox Code Playgroud)
如果用户输入带引号的字符串,则有一个缺点,这将不起作用。您必须首先解析带引号的字符串。
| 归档时间: |
|
| 查看次数: |
19331 次 |
| 最近记录: |