分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

Lucene查询语法详解

发布时间:2023-09-06 02:32责任编辑:傅花花关键词:暂无标签

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

Lucene查询语法详解

原文地址:https://www.cnblogs.com/one-villager/p/10338965.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved