`

Lucene PrefixQuery

阅读更多

在通常情况下,搜索提示一般需要用到前缀查询,即:匹配以XXX开头的语句内容。也可以看作正则表达式的XXX*

如查询:

则提示应该显示:中国中央中间。。。等等。

 

Lucene中的PrefixQuery即满足此要求。但是在建索引的时候需要注意最好不要分词,否则搜索有问题。

 

应该改为:field = new Field("FIELD",indexString,Store.YES,Index.NOT_ANALYZED);

 

且发现一个很重要的问题:PrefixQuery搜索出来的分数都为1.0f。

可能是考虑到速度的原因,为此不考虑分数。

 

 

 

 

 

 

 

 

 

-

分享到:
评论

相关推荐

    Lucene时间区间搜索

    Lucene支持多种查询类型,例如TermQuery、PrefixQuery、RangeQuery等。在时间区间搜索中,我们通常会用到RangeQuery。RangeQuery允许我们在指定的范围内查找匹配的文档,包括或者不包括边界。例如,我们可以创建一个...

    lucene 2.0 api以及lucene 3.0 api

    `TermQuery`, `WildcardQuery`, `PrefixQuery` 等是常见的查询类型。 3. **搜索执行**: 使用 `Searcher` 类进行搜索操作,`Hits` 类表示搜索结果,其中包含匹配的文档及其评分。 4. **分析器(Analyzer)**: Lucene ...

    lucene创建修改删除组合条件查询

    **类似MySQL的LIKE条件**在Lucene中,可以通过`WildcardQuery`或`PrefixQuery`实现。例如,如果要查询以"abc"开头的单词,可以创建一个`PrefixQuery`并传入"abc*"作为参数。 **类似MySQL的IN条件**可以使用`...

    Lucene使用代码实例之搜索文档

    根据不同的查询需求,`Query`有多个子类,如`TermQuery`、`BooleanQuery`和`PrefixQuery`等。这些子类用于将用户的查询字符串转化为Lucene可以理解和执行的结构。 接着,我们关注`Term`类,它是Lucene中表示搜索的...

    lucene_3.6.1_API

    `WildcardQuery`和`PrefixQuery`则实现了通配符和前缀搜索。 为了提高搜索性能,Lucene引入了缓存机制。`Filter`类可以对查询结果进行过滤,如按日期范围筛选,而`BitSet`则用于高效地存储过滤后的结果。同时,`...

    Lucene-core-2.0.0.jar

    查询执行方面,Lucene提供了一系列查询构造器,如TermQuery、WildcardQuery、PrefixQuery等,满足不同类型的查询需求。同时,2.0.0版引入了查询解析器,可以将用户的自然语言输入转化为查询对象,实现更智能的搜索...

    Lucene 搜索方法(前缀搜索)

    首先,前缀搜索的核心在于`PrefixQuery`类,它是Lucene提供的一个查询类,用于执行以特定前缀开头的搜索。在`PrefixQueryDemo.java`文件中,我们可以看到如何创建和执行此类查询的示例代码。以下是一些关键步骤: 1...

    Lucene全文搜索 分组,精确查找,模糊查找

    3. **PrefixQuery**:在需要精确查找的词前添加星号`*`,如`new PrefixQuery(new Term("field", "keyword*"))`,可以匹配以"keyword"开头的所有词。 三、Lucene模糊查找 模糊查找则允许用户输入可能存在拼写错误或...

    Lucene实现全文检索

    2. **模糊搜索**:通过使用PrefixQuery、WildcardQuery或FuzzyQuery,可以实现模糊匹配和通配符查询。 3. **近似搜索**:通过使用SpanNearQuery或PhraseQuery,可以查找接近的词序。 4. **过滤器(Filter)**:...

    lucene.zip

    Lucene提供了多种查询方式,如TermQuery、WildcardQuery、PrefixQuery、PhraseQuery等: 1. **TermQuery**:匹配特定字段中的精确词项,例如`new TermQuery(new Term("field", "word"))`。 2. **WildcardQuery**:...

    Lucene 3.6 学习笔记

    - **前缀查询**:`PrefixQuery`查找以特定前缀开头的文档。 - **通配符查询**:`WildcardQuery`支持通配符查询。 - **多条件查询**:`BooleanQuery`组合多个查询条件。 - **短语查询**:`PhraseQuery`查找文档中包含...

    lucene3.6.1学习

    在 Lucene 中,查询是通过 `Query` 对象表示的,常见的查询类型有 TermQuery、BooleanQuery、PrefixQuery 等。查询对象可以使用 `Searcher` 进行执行,如 `IndexSearcher`,它会返回匹配文档的评分排序结果。测试...

    lucene4.0 demo

    首先,创建一个`IndexSearcher`对象,然后构造一个`Query`,如使用`TermQuery`、`BooleanQuery`或`PrefixQuery`等。调用`IndexSearcher`的`search()`方法执行查询,并获取结果集。 7. **评分与排序** Lucene使用TF...

    lucene例子

    3. **PrefixQuery**、**WildcardQuery** 和 **RegexQuery**:这些查询类支持模糊匹配,如前缀查询、通配符查询和正则表达式查询,适用于对多个字段进行灵活的文本匹配。 4. **DisjunctionMaxQuery**:用于在多个...

    C#+Lucene.Net开发完成的一个自定义WEB搜索引擎

    例如,使用PrefixQuery、WildcardQuery或FuzzyQuery等,可以匹配部分关键词或近似关键词。 **五、Lucene.Net的索引机制** Lucene.Net通过建立倒排索引来实现快速搜索。索引过程包括分析文本、创建Term(词项)、...

    lucene API文档

    4. **PrefixQuery**: 匹配以特定前缀开头的词项。 5. **WildcardQuery**: 支持通配符查询,如“*”和“?”。 四、排序与评分 Lucene允许根据文档的评分(score)或者自定义字段进行排序。评分是基于查询与文档的...

    Ajax+Lucene 打造搜索引擎

    此外,还可以添加自动补全功能,利用Lucene的PrefixQuery或Suggester模块,当用户输入查询时提供可能的匹配项。 在实际开发中,还需要考虑一些额外的细节,如错误处理、性能优化(如使用缓存、分页等)、安全性和可...

    lucene3.0.2jar包

    4. 高级查询API:包括TermQuery、PhraseQuery、WildcardQuery、PrefixQuery等,满足不同类型的搜索需求。 5. 倒排索引:Lucene采用倒排索引机制,允许快速定位到包含特定关键词的文档,极大提高了搜索效率。 二、...

    lucene高级搜索进阶项目_01

    1. ** autocomplete**:利用Lucene的PrefixQuery或FuzzyQuery实现自动补全功能。 2. ** faceted search**:通过分类或属性过滤,使用户能更精确地导航搜索结果。 3. ** spell checking**:使用SpellChecker组件检查...

    Lucene4.X实战类baidu搜索的大型文档海量搜索系统-08.Lucene搜索实战2 共5页.pptx

    - **PrefixQuery**:用于查找具有特定前缀的词项,如"da"或"sm"。然而,需要注意的是,Lucene默认使用标准分析器,会将所有输入转换为小写,因此搜索"Da"不会匹配到大小写不一致的文档。 **4. 分词器与搜索进阶** ...

Global site tag (gtag.js) - Google Analytics