• Lucene查询语法详解


    Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询。

    词语查询(Terms)
    	单词,例如:"test","hello"
    	语句,例如:"hello,world!"
    
    字段查询(Field)
    	title:hello
    	或者
    	title:"hello title" //搜索title为 hello title关键字的文档
    	title:hello title   //搜索title为hello,或者包含title关键字的文档
    
    通配符查询(WildCard Searches)
    	支持在单个单词或者语句中添加通配
    	? 匹配单个字符
    	* 匹配0个或多个字符
    
    模糊词查询(Fuzzy Searches)
    	想要搜索模糊词,需要在词语后面加上符号~
    	test~  //搜索和test相近的词,如text或者tests等词
    	test~0.8  //支持在~后面添加模糊系数,模糊系数[0-1],越靠近1表示越相近,默认模糊系数为0.5。
    
    邻近词查询(Proximity Searches)
    	模糊词只是针对某个单词,在语句间也存在模糊搜索的概念,只不过不是单词的模糊,而是单词之间内容的模糊。
    	注意要使用双引号`""`包围, 这部分内容通过字符个数限制
    	"hello world"~10  //可以匹配"hello 123 world"或者"hello,Tom,world"
    	
    范围查询(Range Searches)
    	{}尖括号表示不包含最小值和最大值,可以单独使用
    	[]方括号表示包含最小值和最大值,可以单独使用
    	grade:{60,80] //搜索成绩grade字段小于等于80分,大于60分的
    	name:{A,C}  //搜索名字在A和C之间的, 返回,bone、baby、barry
    
    
    词语相关度查询(Boosting a Term)
    	如果单词的匹配度很高,一个文档中或者一个字段中可以匹配多次,那么可以提升该词的相关度。使用符号^提高相关度。
    	jakarta^4 apache  //提高jarkarta的比重
    
    布尔操作符(Boolean Operator)
    	必须使用大写
    	支持多种操作符: AND、 OR、 NOT、+ 、 - 
    		AND: 连接两个搜索条件,仅当两个搜索条件都满足时,才认为匹配, 通常用来做交集操作。也可以使用&&替换。
    		OR:	连接两个搜索条件,当其中一个条件满足时,就认为匹配。通常用来做并集操作。也可以使用||替换。
    		NOT: 排除某个搜索条件。通常用来做差集操作也可以使用!替换。 
    		+: 包含该操作符后跟着的搜索条件。
    		-: 排除该操作符后跟着的搜索条件。
    	示范: 
    		tom AND john 或者 tom && john //搜索同时包含tom和john的文档
    		tom OR john 或者 tom || john  //搜索包含tom或者john的文档
    		tom NOT john 或者 tom && !john //搜索包含tom,不包含john的文档
    		+tom  //搜索包含tom的文档
    		-tom  //搜索不包含tom的文档
    		hello AND (tom OR john)  //要搜索包含hello的文档中,也包含tom或者john的
    		title:(+return +"pink panther")  //要搜索标题中,既包含return 也包含pink panther的
    
    转义字符(Escaping Special Character)
    	Lucene中支持很多的符号: + - && || ! ( ) { } [ ] ^ " ~ * ? : 
    	如果需要搜索 (1+1):2 需要对改串进行转换,使用字符\,  如:(1+1):2
    
  • 相关阅读:
    解决浏览器跨域限制方案之WebSocket
    解决浏览器跨域限制方案之CORS
    解决浏览器跨域限制方案之JSONP
    浏览器跨域限制概述
    tomcat cluster配置实战注意事项
    学习go语言编程系列之定义变量
    修改xshell的默认字间距和行间距
    学习go语言编程系列之helloworld
    hive操作语句使用详解
    Hive通过查询语句向表中插入数据注意事项
  • 原文地址:https://www.cnblogs.com/one-villager/p/10338965.html
Copyright © 2020-2023  润新知