1,一个短句可以用双音号括起来,这样只有文中含有该句的时间才会被搜索出来.比如:
"hip hop"
将会只出现包含hip hop(不区分大小写)的短句
2,一个字段名后面跟冒号,再加上要搜索的词语或短句,就可以直接搜索该字段.比如:
要搜索在 1981年10月20日出生的会员可以这样:
age:19811020
如果是短句,则是:
age:"1981 10 20"
后面还可以跟关键字:
age:19811020 美女
3,可以用?或*实现模糊搜索,搜索 te*t 的结果会出 tet,test,text.也会出现teast,而搜索 te?t,只会有tet,test,text.其中的?表示0或1个字符,*表示0或多个字符.
4,用roam~可以实现拼写模糊搜索,比如foam和roams都将会被匹配出来.在1.9版本以后,还会有一个参数,可以指定要匹配的相似度.
5,"~"还可以用于指定关键字之间的距离,比如
"jakarta apache"~10
只匹配文中含jakarta和apache两个关键字,且两者中间有10以下的词语的文档.
6,":"还可以用来提定一个范围,比如:
age:[20051010 TO 20051229]
就只匹配在2005年10月10日和2005年12月29日之间出生的会员.
对于非数字组合的字符串可以
title:{Aida TO Carmen}
搜索在Aida和Carmen之间的词语,但是不包含Aida和Carmen这两个词.
7,可以用"^"实现着重号的功能,比如你想在搜索 "jakarta apache"时让jakarta更相关的排在前面,就可以用:
jakarta^4 apache
对于一个短句也是如此:
"jakarta apache"^4 "Apache Lucene"
8,"OR"操作符用来表示或,为了搜索含有 "jakarta apache" 或只有 "jakarta"的文档,可以这样:
"jakarta apache" OR jakarta
9,"AND"操作符用来表示与,为了搜索同时含有 "jakarta apache" 和 "Apache Lucene"的文档,可以用这样的搜索语句:
"jakarta apache" AND "Apache Lucene"
10,为了让某个关键字必须出现,其它关键字则可以忽略,可以用"+":
+jakarta apache
这样搜索出的文档一定会出现jakarta,而不一定有apache.
11,"NOT"可以用来排除某个关键字,比如你想搜索含有"jakarta apache",但是没有 "Apache Lucene" 的文档,就可以用:
"jakarta apache" NOT "Apache Lucene"
但是NOT不能出于在一个单一的条件里面,比如
NOT "Apache Lucene"
并不会如我们想象的那样搜索出不含有"Apache Lucene"的文档.
12,"-"号等同于NOT,只是要紧挨着关键字或短语:
"jakarta apache" -"Apache Lucene"
参考:
http://lucene.apache.org/java/docs/queryparsersyntax.html
分享到:
相关推荐
### Lucene查询语法详解 #### 一、Lucene概述 Lucene是一款高性能、全功能的文本搜索引擎库,被广泛应用于各种需要实现全文检索的应用场景之中。Lucene支持复杂的查询语法,能够灵活地处理多样化的查询需求,使得...
**Lucene查询语法详解** Apache Lucene是一款高性能、全文本搜索库,被广泛应用于各种搜索引擎的构建。在使用Lucene进行信息检索时,理解和掌握其查询语法至关重要。本篇文章将深入探讨Lucene的查询语法,帮助你更...
用到的工具 jsoup+spring+struct+DButil+mysql+lucene 可以配置采集网站的图片,包含分组统计,相同数据合并功能,主要是给群内成员来个demo,让大家有个学习的demo 小试牛刀、临时写的,莫吐槽 需要用到mysql...
**查询语法**是用户用来构造查询请求的语言规范,Lucene 支持丰富的查询语法,如布尔查询、短语查询等。 **JavaCC** 是一个用于生成词法分析器和语法分析器的工具,**QueryParser** 则是 Lucene 提供的一个用于解析...
3. **查询解析**: 用户输入的查询字符串会被转换为Lucene查询语法,QueryParser类负责这个过程。它可以处理各种查询类型,如布尔查询、短语查询、前缀查询等。 4. **文档检索**: 使用IndexReader和IndexSearcher类...
#### Lucene 查询语法 - **语法关键字**:用于构建查询的特殊字符,如 AND、OR、NOT 等。 - **查询词(Term)**:用户查询时输入的基本单位。 - **查询域(Field)**:指定查询作用于文档的哪个字段。 - **通配符查询...
2. **查询解析和语法**: `lucene-queryparser.jar`和`lucene-sandbox.jar`提供了查询解析器,允许用户使用标准的Lucene查询语法来构建复杂的查询表达式。`lucene-suggest.jar`支持自动补全和建议功能。 3. **内存和...
24 Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser(1)
3. 查询解析:用户可以使用标准的Lucene查询语法或构造复杂的查询表达式,Lucene.Net会将其解析为可执行的搜索计划。 4. 高效搜索:通过倒排索引,Lucene.Net可以迅速找到包含特定词语的文档,支持多种搜索类型,如...
3. **构造查询**:`QueryParser`用于构建Lucene查询语句,它理解标准的Lucene查询语法。提供一个Analyzer和查询字符串,`QueryParser`将生成一个`Query`对象。 4. **执行查询**:使用`IndexSearcher`的`search()`...
在Lucene中,表达式查询是一种高级查询方式,允许用户通过特定的语法构造复杂的查询条件。本篇文章将深入探讨Lucene表达式处理查询的原理、语法及示例。 ### 1. Lucene表达式查询基础 Lucene表达式查询是基于...
1. **查询语法**:Solr支持丰富的查询语法,包括标准查询解析器(Standard Query Parser)和Lucene查询语法。例如,`q=field:query`用于指定字段查询,`q=*:*`表示匹配所有文档。 2. **查询解析**:查询字符串会被...
lucene.NET使用教程整合 lucene.NET使用教程整合 lucene.NET使用教程整合 lucene.NET使用教程整合 lucene.NET使用教程整合 lucene.NET使用教程整合
开发人员可以使用自然语言或Lucene查询语法来创建查询,然后通过`Searcher`类执行查询,获取匹配的文档。`TopDocs`对象返回搜索结果,包括文档得分和排名信息。 除此之外,PyLucene还支持高级特性,如分词器...
它支持标准的 Lucene 查询语法,包括布尔运算符(AND、OR、NOT)、字段限定、模糊匹配、短语查询等,使用户可以方便地构造复杂的搜索条件。 在实际应用中,使用这些组件,开发者可以构建一个高效的全文搜索引擎。...
Tripod介绍Tripod用于对文本数据的实时匹配分析,其语法主要兼容了lucene语法,并做了微调。在很多文本处理的应用中,会有类似数据订阅的需求,即将客户关注的数据推送给客户。一种典型的实现是,我们会根据用户...
- **查询API**:Solr支持多种查询语法,如Lucene查询语法、Solr查询语法等。 2. **Windows上安装Solr 8.6.0** - **解压**:首先,需要将"solr-8.6.0.zip"解压到本地文件夹。 - **启动服务器**:进入解压后的目录...
同时,Solr支持多种查询语法,包括标准查询解析器(Standard Query Parser)、Lucene查询语法(LQL)等,以及高级特性如布尔运算、短语匹配、模糊搜索等。 其次,SolrCloud是Solr的分布式部署模式,它基于ZooKeeper...
- 查询分析(Query Parsing):将用户的输入转换为查询语法,可能涉及短语查询、布尔查询等。 - 匹配评分(Scoring):Lucene使用TF-IDF(Term Frequency-Inverse Document Frequency)或其他评分算法,计算每个文档...