Lucene 的Query Parser(查询语法)
来源:互联网 发布:pp助手mac版 编辑:程序博客网 时间:2024/06/02 04:19
本文根据Lucene官方文档整理而成。
Query Parser 语法
版本;Lucene 3.0.0
来源:http://lucene.apache.org/java/3_0_0/queryparsersyntax.html
term:
语法:
term = SingleTerm | PhraseTerm
Single Term = 单个word,如"hello"
Phrases Term = 用双引号""括起的短语,如"hello dolly"
Field:
对某个指定字段进行查询,其语法为:
[Field:]term
如果省略field,则对缺省字段进行查询。
注意:在指定filed时,它只修饰它的直接term,即紧挨着它的term。
例如,如果要检索字段title是否包含"Do it right",正确的写法为:title:"Do it right" ,
而不是title:Do it right,后者将查询title字段是否包含"Do" 或者缺省字段text中是否包含it 或者 right关键字。
Field Grouping:(group multiple clauses to a single field.)
语法:
Field:(multiple-term-expression)
查询field字段是否满足多个term子句的条件,即用"()"括起的term表达式。此语法使得表达式更加紧凑。
如:title:(+return +"pink panther")
title必须包含return和"pink panther"
Term Modifiers:(项修饰符)
通配符(Wildcard Searches):
?表示匹配单个字符
* 表示匹配0到多个字符
说明:
这两个特殊字符只能用于修饰SingleTerm,且不能是SingleTerm的第一个字符。
如果在PhraseTerm中出现,则为字面含义,不被看做通配符,常被看作stop word而被忽略。
模糊匹配(Fuzzy Searches):
语法; SingleTerm~[n] n=[0,1]
查找与term相似度为n的匹配项,n越大越相似,缺省n为0.5
邻近搜索(Proximity Searches):
语法:PhraseTerm~n
指定phrase中的单词的邻近距离,如:"jakarta apache"~10 表示jakarta与apache的距离应在10个单词以内
如指定n=0则表示这两个word紧挨着,但不保证它们出现的先后顺序。
范围搜索(Range Searches):
语法:
[r1 TO r2] 闭区间
or
{r1 TO r2} 开区间
说明:
排序规则为字典序。
括弧应匹配,不能将"{"和"]"混合使用。(此为用Luke在2.4.9的索引上测试的情况)
增加相关度(Boosting a Term):
语法:
term^n (n>0,default n=1)
如果文档中出现term关键字,则在计算其相关度时其权重增加。
布尔表达式:
布尔操作符(全部大写):AND(&&), "+", OR(||), NOT(!),"-"
几个等价关系:
AND = &&
OR = ||
NOT = !
几点说明:
或关系:term之间如果没有布尔操作符,则等价于OR
非关系:NOT是二元表达式,单个term不能用NOT表达式。
"+" required operator:必有操作符
其语法为:
+term
表示必须包含term,此为一元表达式
"-" prohibit operator:必无操作符
其语法为:
-term
表示不可包含term,此为一元表达式
表达式的优先级:
表达式的优先级缺省遵循布尔表达式的规则,但可以通过"()"改变表达式的优先级。
如:(jakarta OR apache) AND website
转义字符:
Lucene的特殊字符包括: + - && || ! ( ) { } [ ] ^ " ~ * ? : /
要想获得这些特殊字符的字面值,用"/"进行转义即可。
- Lucene 的Query Parser(查询语法)
- Lucene 的Query Parser(查询语法)
- Lucene Query Parser Syntax
- Apache Lucene - Query Parser Syntax
- Lucene的查询语法!
- lucene的查询语法
- Lucene中Query语法树的整理
- lucene query语法详解
- Solr的标准查询解析器Standard Query Parser
- Solr的查询解析器DisMax Query Parser
- Solr的查询解析器The Extended DisMax Query Parser
- 基于lucene的案例开发:Query查询
- Lucene 查询(Query)子类
- Lucene 查询(Query)子类
- Lucene查询语法详解(Lucene query syntax)- 用于Kibana搜索语句
- Lucene的查询语法(2012.11.06)
- ELK:kibana使用的lucene查询语法
- ELK:kibana使用的lucene查询语法
- 软件设计师的证书有多少含金量?
- 正则匹配原理之——逆序环视深入
- ZJU 2588 &&PKU 1523
- 好好学习
- 2010
- Lucene 的Query Parser(查询语法)
- 开发高性能的 ASP.NET 应用程序
- LVS源码分析小插曲一---谁在抢谁的饭碗
- apt-get 和dpkg命令大全
- My first blog day
- 编译Lua以及编写动态扩展
- http meta介绍
- 监视 ASP.NET 应用程序性能
- CPM、cpa、cps、PV、IP、UV术语介绍