在MongoDB中,可以使用文本搜索功能對文檔進(jìn)行全文搜索
createIndex()
方法實(shí)現(xiàn)。例如,假設(shè)我們有一個名為articles
的集合,我們可以使用以下命令為其創(chuàng)建一個文本索引:db.articles.createIndex({ title: "text", content: "text" });
這將在title
和content
字段上創(chuàng)建一個文本索引。
$text
操作符執(zhí)行文本搜索。例如,以下查詢將在articles
集合中搜索包含"mongodb"和"text"的文檔:db.articles.find({ $text: { $search: "\"mongodb\" \"text\"" } });
$meta
操作符。例如,假設(shè)我們希望根據(jù)title
字段的重要性對結(jié)果進(jìn)行加權(quán),可以為title
字段分配更高的權(quán)重:db.articles.find(
{ $text: { $search: "\"mongodb\" \"text\"" } },
{ $meta: { score: { $multiply: ["$title", 2] } } }
);
在這個例子中,我們使用$multiply
操作符將title
字段的得分乘以2。這將使得包含"mongodb"和"text"的文檔的title
字段在相關(guān)性得分計(jì)算中具有更高的權(quán)重。
注意:權(quán)重設(shè)置僅適用于文本搜索。如果需要對其他類型的查詢進(jìn)行加權(quán),可以考慮使用其他操作符,如$project
。