上QQ阅读APP看书,第一时间看更新
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)。