摘要:為了執行這一運算,使用了和運算符。需要注意的是,視圖不支持。只查找和,不包含排序將會它的返還默認是未排序的。但是文本查詢請求將會計算相關的評分對每一個即指定與請求匹配的程度。要想按照評分去排序,你必須顯性地指出字段并且根據他們來排序。
簡介
MongoDB支持一段內容的文本查詢。為了執行這一運算,MongoDB使用了 text index 和 $text
運算符。需要注意的是,Views視圖不支持 text search。
例子
這一個例子將會展示如何創建一個 text index 和如何使用它去查找 ‘coffee shops’, 在給定的只有文本字段里。首先創建一個 collection stores。
db.stores.insert( [ { _id: 1, name: "Java Hut", description: "Coffee and cakes" }, { _id: 2, name: "Burger Buns", description: "Gourmet hamburgers" }, { _id: 3, name: "Coffee Shop", description: "Just coffee" }, { _id: 4, name: "Clothes Clothes Clothes", description: "Discount clothing" }, { _id: 5, name: "Java Shopping", description: "Indonesian goods" } ] )
Text Index 文本索引
MongoDB 提供文本索引來支持文本查詢請求在一串內容里,文本索引可以包含任意字段 只要它的值是一個string 或者 一個 string 元素的 array。
為了執行文本查詢請求,你必須有一個文本索引在你的 collection里。一個 collection 只能有一個文本查詢索引,但是那一個索引可以覆蓋多個字段。
例如你可以運行下面的代碼,可以操作文本查詢在 name 和 description 字段之上。
db.stores.createIndex( { name: "text", description: "text" } ) $text Operator
使用 $text 請求運算符去執行文本查詢在一個 collection里通過文本索引。
直接用例子來解釋了。
這個語句就是去查找所有stores包含任意關鍵詞在[‘coffee’, "shop","java"]中
db.stores.find( { $text: { $search: "java coffee shop" } } )
精準短語
通過包裝他們在雙引號里
db.stores.find( { $text: { $search: "java "coffee shop"" } } )
排除某一項
在關鍵詞前加 - 符號。只查找 “java” 和 “shop”,不包含 “coffee”
db.stores.find( { $text: { $search: "java shop -coffee" } } )
排序
MongoDB將會它的返還默認是未排序的。但是文本查詢請求將會計算相關的評分對每一個 document 即指定 document 與請求匹配的程度。
要想按照評分去排序,你必須顯性地指出 $meta textScore字段并且根據他們來排序。
db.stores.find( { $text: { $search: "java coffee shop" } }, { score: { $meta: "textScore" } } ).sort( { score: { $meta: "textScore" } } ) Text search is also available in the aggregation pipeline.
原文:https://docs.mongodb.com/manu...
歡迎加入學習交流群569772982,大家一起學習交流。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70607.html
摘要:全文索引在中每個集合只允許創建一個索引,因此不用擔心存在多個索引造成沖突的問題。全文索引創建全文索引創建方法與創建單鍵索引復合索引類似。 在MongoDB中通過建立索引可以進行高效的查詢,如果沒有索引MongoDB將會掃描整個集合與查詢的條件進行匹配,這對于性能會造成很大的消耗。技術博客: Node.js技術棧 快速導航 Mongodb索引類型 索引屬性 索引實例測試 索引(Ind...
摘要:全文索引主要用于搜索業務的索引,通過多種不同的查詢方式和條件進行全文索引,適合搜索引擎和站內搜索業務。注全文索引全文索引目前不支持中文。 簡述 MongoDB中的索引其實類似于關系型數據庫,都是為了提高查詢和排序的效率的,并且實現原理也基本一致。由于集合中的鍵(字段)可以是普通數據類型,也可以是子文檔。MongoDB可以在各種類型的鍵上創建索引。 索引 MongoDB的索引就是集合Co...
摘要:全文索引主要用于搜索業務的索引,通過多種不同的查詢方式和條件進行全文索引,適合搜索引擎和站內搜索業務。注全文索引全文索引目前不支持中文。 簡述 MongoDB中的索引其實類似于關系型數據庫,都是為了提高查詢和排序的效率的,并且實現原理也基本一致。由于集合中的鍵(字段)可以是普通數據類型,也可以是子文檔。MongoDB可以在各種類型的鍵上創建索引。 索引 MongoDB的索引就是集合Co...
閱讀 1164·2021-09-10 10:51
閱讀 896·2019-08-30 15:53
閱讀 2724·2019-08-30 12:50
閱讀 976·2019-08-30 11:07
閱讀 1990·2019-08-30 10:50
閱讀 3598·2019-08-29 18:47
閱讀 1308·2019-08-29 18:44
閱讀 1599·2019-08-29 17:01