全文索引的建立比較慢,實操中需要等伺服器閒時或者離線進行(否則會阻塞讀寫,當然也可以放在後台執行)。
新增全文索引:
db
.tesla
.ensureindex(,})
:給"song","lyrics"字段新增全文索引。
: 權重分配,"lycris" 的權重為2,"song"的權重為1.(權重越大優先順序越高,權重的區間為1-1000,000,000)
一旦分配錯了權重,只能刪除索引重新建立,建立權重請務必小心
db.tesla.find(})
(只有一條)
db.tesla.find(})
db.tesla.find(})
(中間使用空格隔開)
db.tesla.find(})
(使用\"把關鍵字包起來)
db.tesla.find(})
(使用-將排除的關鍵字標識出來)
db.tesla.find(})
(有短語的需要在短語之間進行拆分,例子中的pre-market拆成 pre -market,否則mongodb會把pre-market的減號當成分隔符)
翻譯:
使用全文搜尋
contains搜尋方式 1.簡單詞搜尋 搜尋乙個或多個特定的詞或短語。詞可以包括乙個或多個字元,中間沒有空格或標點。短語可以由空格分隔的多個詞組成,但詞之間可以有標點也可以沒標點 搜尋文章內容含有張三或者李四的記錄 select from article where contains articl...
全文模糊搜尋
1.對原文進行分詞,再通過相應的搜尋演算法進行查詢 主要是中文分詞,這裡推薦 2.資料庫方式,通過全文索引進行搜尋 建立全文索引的表的儲存引擎型別必須為myisam 問題是match against對中文模糊搜尋支援不是太好 新建乙個utf8 myisam型別的表並建立乙個全文索引 create t...
Springboot Lucene全文搜尋引擎
引入核心依賴 lucene核心及其依賴 org.apache.lucene lucene core 7.6.0 org.apache.lucene lucene queryparser 7.6.0 org.apache.lucene lucene analyzers common 7.6.0 中文分...