[英]Text search in Mongo
我有一些貓鼬的模式:
const Article = new Schema({
name: { type: String, required: true },
message: { type: String, default: "" },
searchField: { type: String, default: "" },
...
});
searchField是名稱和消息字段的組合。
和索引:
Article.index({searchField: 'text'});
然后,當我需要在文章列表中搜索時:
query.$text = { $search: data.search }.
它有效,但是存在一些問題。
第一個-在data.search.length <= 3時找不到Article。例如,name ='bag'和data.search ='bag',則不起作用(如果語言為英語,則可以)。
第二個-如果name ='subtitles'和data.search ='sub',則沒有結果。
怎么了?
MongoDB Shell版本:3.0.6
您可以使用正則表達式進行搜索。 將查詢更改為此:
Article.find({searchField: /sub/i});
使用雙/
可以只搜索單詞的一部分。 最后的i
忽略大小寫。
(請注意,這僅在特定字段searchField
搜索)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.