【elasticsearch】Lucene查询语言

1.基本概念 

在Lucene中,一个查询通常被分割为词项与操作符。Lucene中的词项可以是单个词,
也可以是一个短语。如果设置了查询分析过程,那么预先选定的分析器,将会对查询中
所有词项进行处理。

布尔操作符:
AND:
它的含义是:文档匹配当前从句当且仅当AND操作符左右两边的词项都在文档中出现。
例如: apache AND lucene, 同时包含 apache 和lucene 这两个词项的文档才回 
返回给用户。
OR: 
它的含义是,包含当前从句中任意词项的文档都会被视为与该从句匹配。
NOT:与当前从句的文档必须不包含NOT操作符后面的词项。
+:只有包含+操作符后面词项的文档才回被认为是从句匹配。
-:与从句匹配的文档不能出现-操作符后的词项。

2.在字段中查询 

就像 elasticsearch 的处理方式那样,Lucene中所有的数据都存储在字段中,而字段 
又是文档的组成单位。为了实现针对某个字段的查询,用户需要提供字段名称,
再加上冒号以及将要在该字段中执行查询的从句。
title字段中包含elasticsearch 的文档:
title:elasticsearch

title中同时包含:elasticsearch 和 "mastering book"的文档。 
title:(+elasticsearch+"mastering book")
或者: 
+title:elasticsearch+title:"mastering book"

3.词项修饰符 

Lucene支持两种通配符:?和*; 
?:匹配任意一个字符
*:匹配多个字符 

处于性能的考虑,通配符不能作为词项的第一个字符出现。

数值类型上执行范围查询:
price:[10.00 TO 15.00]
--字符串类型上执行范围查询;
name:[Adam TO Adria]
--大于等于10,小于15的文档。
price:[10.00 TO 15.00}

4.特殊字符处理 

+ - && || ! ( ) {} [] ^ " ~ * ? : \ / 
--遇到这些需要先使用反斜杠对这些特殊字符进行转义。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值