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