`
Tonyguxu
  • 浏览: 272197 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Lucene】lucene查询Query对象

 
阅读更多

PrefixQuery

前缀查询。

如 test* 会匹配出 test/tests/tester。

例如:目录(category)通常都体现一个层次结构,如/tec/it/java 或 /tec/it/db 或 /tec/it/java/jvm 等等目录,如果想要搜索某个目录(如/tec/it或者/tec/it/db),可以构造prefix query。

 

WildcardQuery

通配符查询。可以让我们使用不完整、缺少某些字母的项进行查询。

lucene有两个标准通配符:* 代表0个或多个字母,? 代表0个或者1个字母。

 

注意:如果以 * 开头,或者中间包含 * ,或者结尾包含 * (如果仅结尾包含,则prefix优先)则为wildcard。

 

FuzzyQuery

模糊查询。

编辑距离算法 : 决定索引中的项term与指定目标项之间的相似程度,计算从一个字符串转换到另一个字符串所需的最少插入、删除和替换的字母个数。(参见http://nemogu.iteye.com/blog/1518585

 

在lucene中,计算两个字符串间的相似度,使用了下面的计算公式:

 

 

1- distance / min(textLen, targetLen)

其中,distance就是上面的编辑距离算法算出的edit distance,textlen为字符串长度,targetlen为要匹配的字符串的长度。 从公式可以看出,相似度不仅跟编辑距离有关还与串的长度有关,相似度是个[0,1]之间的值,值越大,表明两者越匹配。

 

使用QueryParser.parse("abc~0.7")解析查询表达式   abc~0.7   ,会解析成FuzzyQuery,0.7为最小相似度。

 

 

PhraseQuery

在默认情况下,索引中会包含各个项Term的位置信息。

 

查询语句用双引号引起来,查询时项之间的距离会作为查询的一个约束条件。两个项位置之间所允许的最大距离称为slop,默认情况下,slop因子设置为0,即要求查询结果必须和输入的短语完全匹配。可以在查询表达式加上~n设置,如QueryParser.parse(“abc 123”~1);

 

 

 

BooleanQuery

 

 

分享到:
评论

相关推荐

    Lucene3.0之查询类型详解

    Lucene3.0之查询处理(1):原理和查询类型 各种Query对象详解

    Lucene时间区间搜索

    c#下实现Lucene时间区间查询匹配。主要还是对Lucene查循对像Query的实现

    lucene中的SpanQuery和PhraseQuery详解(有图示)

    本文档详细讲解了各种SpanQuery的用法,以及它跟PhraseQuery的区别

    lucene,lucene教程,lucene讲解

    public void add(Query query, BooleanClause.Occur occur) BooleanClause用于表示布尔查询子句关系的类,包括: BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。 有以下6...

    lucene3.3的全部jar包

    lucene3.3的全部jar包ant-1.7.1.jar ant-junit-1.7.1.jar commons-beanutils-1.7.0.jar ...lucene-xml-query-parser-3.3.0.jar maven-ant-tasks-2.1.1.jar xercesImpl-2.9.1-patched-XERCESJ-1257.jar

    lucene-fluent-query-builder:围绕构建 Lucene.Net 查询的便捷 Fluent-API

    lucene-fluent-query-builder 使用 Lucene 的 API 构建查询可能有点麻烦,至少是冗长的。 此类尝试使用 Fluent 接口模式使编写查询尽可能简单。安装PM > Install-Package LrNet.Lucene.Fluent 首先,在使用查询构建...

    lucene-query-string-builder:使用基本功能构建复杂的Lucene查询字符串

    npm install lucene-query-string-builder --save 特征 创建术语字符串时转义lucene特殊字符 包含所有lucene用途的运算符 简单的lucene.builder函数,用于定义lucene查询构建器 用法 让我们看看如何使用Lucene查询...

    lucene2.9.1完整DEMO及开发文档

    把用户输入的查询字符串封装成Lucene能够识别的Query对象。 3) Filter: 用来过虑搜索结果的对象。 4) TopDocs: 代表查询结果集信息对象。它有两个属性: a) totalHits: 查询命中数。 b) scoreDocs: 查询结果信息...

    Lucene查询工具LQT.zip

    usage: LuceneQueryTool [options] --analyzer <arg> for query, (KeywordAnalyzer | StandardAnalyzer) (defaults to KeywordAnalyzer) --fields <arg> fields to include in output (defaults to all) -i,--...

    lucene例子

    支持许多强大的查询类型,比如 PhraseQuery、WildcardQuery、RangeQuery、FuzzyQuery、BooleanQuery 等。 支持解析人们输入的丰富查询表达式。 允许用户使用定制排序、过滤和查询表达式解析扩展搜索行为。 使用基于...

    Lucene 3.6 学习笔记

    (7) 模糊查询(FuzzyQuery) 12 3.3 QueryParser 13 (1) 创建QueryParser 13 (2) 各种匹配方式 13 3.4 分页搜索 14 (1) 普通分页 14 (2) searchAfter分页 15 第四章 分词基础 17 4.1 分词效果 17 (1) 准备分词输出类...

    lucene-query-parser:Lucene查询字符串解析器用作Web api查询或过滤器字符串

    Lucene查询解析器 Lucene查询字符串解析器,用作Web api查询或过滤器字符串。 基本代码来自 ...composer require "smallhomelab/lucene-query-parser" 用法 $ parseTree = ( new LucenenQueryParser \

    struts2 + spring + lucene_search 实例

    import org.apache.lucene.search.Query; /** * 张超 * ago52030@163.com * @author Administrator * */ public class WareSearch { public Hits search(String key, String city) { Hits hits = null; ...

    lucene第一天完整代码

    @Test public void testBooleanQuery() throws Exception { IndexSearcher indexSearcher = getIndexSearcher(); BooleanQuery booleanQuery = ... Query query2 = new TermQuery(new Term("fileName","lucene"));

    我封装的搜索引擎之lucene篇

    NULL 博文链接:https://sunhao-java.iteye.com/blog/1874396

    lucene笔记

    1、 Lucene介绍 a) 什么是lucene b) 全文检索的应用场景 c) 全文检索定义 2、 Luence实现全文检索的流程(重点...a) 通过Query子类创建查询对象 b) 通过QueryParser创建查询对象 7、 相关度排序 8、 中文分词器(重点)

    lucene 4.3所用到的包

    全文检索lucene 4.3 所用到的3个jar包,包含lucene-queryparser-4.3.0.jar、 lucene-core-4.3.0.jar、lucene-analyzers-common-4.3.0.jar。

    Lucene5学习之SpellCheck拼写纠错

    NULL 博文链接:https://iamyida.iteye.com/blog/2206107

    Apache Lucene全文检索和IKAnalyzer分词工具类

    import org.apache.lucene.search.Query; import org.wltea.analyzer.IKSegmentation; import org.wltea.analyzer.Lexeme; /** * Apache Lucene全文检索和IKAnalyzer分词工具类 * <p>Company: 91注册码 * time:...

    Lucene3.1使用教程.doc

    4. ConstantScoreQuery允许直接封装 Query 对象 5. 可通过 IndexWriterConfig 对 IndexWriter 进行配置 6. IndexWriter.getReader 被 IndexReader.open(IndexWriter) 所替换. 7. 废弃了 MultiSearcher;...

Global site tag (gtag.js) - Google Analytics