3.6.2 基于全文索引的查詢
通過過程db.index.fulltext.queryNodes和db.index.fulltext.queryRelationships可以實現基于全文索引的查詢。其返回結果中既包含精確匹配的結果,也包含近似匹配的結果。被索引的屬性值和基于索引的查詢都經過分析器處理,以便索引可以找到近似匹配的結果。每一條查詢結果都包含一個分數(score),代表了該結果的匹配程度。所有查詢結果按分數降序排列,最匹配的結果放在第一條。例如,在電影數據庫中搜索“Full Metal Jacket”,第一個結果完全匹配,同時也會得到其他三個相似的結果:

返回結果為:

全文索引由Apache Lucene索引和搜索庫提供支持,所以可以使用Lucene的全文查詢語言。例如,如果只想得到精確匹配結果,那么將目標字符串加英文單引號。

返回結果為:

Lucene語法中還允許使用邏輯運算符(比如AND和OR)來搜索:

數據庫中只有電影Full Metal Jacket同時包含單詞full和metal。
返回結果為:

還可以只搜索特定的屬性:在要搜索的文本前面加上屬性名稱和冒號。

返回結果為:

Lucene語法的完整描述請參閱Lucene文檔(8)。
推薦閱讀
- 數據庫原理及應用教程(第4版)(微課版)
- Mastering Ninject for Dependency Injection
- Test-Driven Development with Mockito
- Creating Mobile Apps with Sencha Touch 2
- Libgdx Cross/platform Game Development Cookbook
- Python醫學數據分析入門
- The Game Jam Survival Guide
- TextMate How-to
- 數據庫原理與設計實驗教程(MySQL版)
- 大數據技術體系詳解:原理、架構與實踐
- 基于數據發布的隱私保護模型研究
- 量化投資:交易模型開發與數據挖掘
- 實用預測分析
- Redis 6開發與實戰
- 數字孿生