`
deepfuture
  • 浏览: 4397514 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80021
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:69974
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103284
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285579
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15001
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67489
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32095
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45963
社区版块
存档分类
最新评论

lucene-PhraseQuery通过短语查询

阅读更多

通过查找域中的项都相隔一定的距离。两个项的位置最大相隔距离为slop。距离是指项要按顺序组成给定的短语,所需要移动位置的次数,不是指间距。

public class PhraseQueryTest extends TestCase{

privateIndexSearcher searcher;

protectedvoid setUp() throws IOException{

RAMDirectory directory=new RAMDirectory();

IndexWriter writer=new IndexWriter(directory,newWhitespaceAnalyzer(),true);

Document doc=new Document();

doc.add(Field.Text("field","the quick brown fox jumped over thelazy dog"));

writer.addDocument(doc);

writer.close();

searcher=new IndexSearcher(directory);

}

privateboolean matched(String[] phrase,int slop) throwsIOException{

PhraseQuery query=new PhraseQuery();

query.setSlop(slop);

 

for (int i=0;i<phrase.length;i++){

query.add(new Term("field",phrase[i]));

}

Hits hits=searcher.search(query);

}

}

String[] phrase=nw String[]{"fox","quick"}

matched(phrase,3) 可以成功匹配,将fox向右移动按顺序移动3位

项之间距离越小的匹配具有的权重越大。

分享到:
评论

相关推荐

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

    Lucene是一个功能强大的搜索引擎库,提供了多种查询方式,其中SpanQuery和PhraseQuery是两个重要的查询类型。本文将详细介绍SpanQuery和PhraseQuery的使用和区别。 一、SpanQuery SpanQuery是一个抽象类,提供了...

    lucene-5.5.3.zip

    - **查询解析器(QueryParser)**:支持更复杂的查询语法,如布尔运算符、短语查询、通配符查询等。 - **多字段搜索**:可以在多个字段上同时进行搜索,并通过权重设置来调整不同字段的重要性。 - **近实时搜索**...

    lucene-3.5.0.jar

    - **Query**:用户输入的搜索条件被转化为Query对象,常见的有TermQuery(单个词查询)、BooleanQuery(布尔逻辑组合查询)和PhraseQuery(短语查询)等。 - **TF-IDF**:Lucene使用TF-IDF(词频-逆文档频率)算法...

    自己整理的 最新的 lucene-3.0.1_api

    5. **Query**:表示用户输入的查询条件,如TermQuery(单个词)、BooleanQuery(布尔组合)和PhraseQuery(短语)等。 6. **Document**:表示索引中的一个条目,可以包含多个Field,每个Field有特定的名称和值,...

    lucene-core-2.4.0的源码

    在Lucene 2.4.0中,QueryParser支持布尔运算符、短语匹配等高级查询语法。 2. **Query**:表示用户的查询意图,包括TermQuery、PhraseQuery、BooleanQuery等多种类型。 3. **Searcher**:执行查询并返回结果。主要...

    lucene-3.1.0案例

    在Lucene中,查询通常通过Query类来表示,我们可以创建TermQuery、PhraseQuery、BooleanQuery等不同类型的查询对象,以满足各种复杂的查询需求。 在实际操作中,创建索引是Lucene应用的第一步。开发者需要读取数据...

    lucene-2.4.0-src.zip

    最后,Lucene 2.4.0还支持多种高级特性,如命中高亮(Highlighting)、近似搜索(Fuzzy Search)、短语查询(Phrase Query)和多字段搜索。这些功能通过`Highlighter`、`FuzzyQuery`、`PhraseQuery`等类实现,极大地...

    lucene-4.6.0官方文档

    TermQuery匹配单个词项,PhraseQuery用于短语匹配,BooleanQuery可以组合多个查询条件。查询执行后,通过Scorer和Collector进行文档评分和收集,决定哪些文档应该返回给用户。 5. **高级特性** Lucene还提供了高级...

    lucene-in-action-clone:lucene-in-action 一书中源代码的克隆

    例如,TermQuery(词项查询)用于精确匹配,BooleanQuery(布尔查询)用于组合多个查询条件,PhraseQuery(短语查询)用于查找特定顺序的词组。 在实际应用中,Lucene常与其他技术结合,如Solr和Elasticsearch,...

    lucene-初级学习资料.ppt

    - **查询(Query)**:Lucene 支持多种查询类型,包括 TermQuery、PhraseQuery、BooleanQuery 等。用户可以通过 `QueryParser` 创建查询对象,或者直接构造 `Query` 对象。 - **搜索(Search)**:使用 `...

    lucene源码---官网最新下载

    - **Query**: Lucene 支持多种查询类型,如 TermQuery(匹配单个词项)、BooleanQuery(组合多个查询)、PhraseQuery(匹配短语)等。查询对象表示了用户想要查找的信息模式。 - **Scoring**: Lucene 使用 TF-IDF...

    lucene-3.6.0

    2. **查询处理**:Lucene支持多种查询类型,如布尔查询、短语查询、模糊查询、范围查询等。用户可以通过QueryParser类来构建复杂的查询表达式,3.6.0版本对查询语法进行了优化,提升了查询性能。 3. **分析器...

    Lucene 搜索方法(短语搜索)

    总结一下,Lucene的短语搜索通过`PhraseQuery`类提供了一种强大的工具,能够精确匹配文档中词汇的顺序。通过对`DemoData.java`和`PhraseQueryDemo.java`的分析,我们可以了解到如何构建短语查询,设置位置偏移量,...

    Lucene.Net-2.9.2 c#源码

    通过深入理解Lucene.Net 2.9.2的源码,开发者可以定制自己的分析器、优化查询性能、调整索引策略,从而在实际项目中充分发挥Lucene.Net的潜力。在构建查询网站时,结合C#的特性,可以构建出高效、灵活且用户体验良好...

    Lucene 3.6 学习笔记

    - **短语查询**:`PhraseQuery`查找文档中包含特定顺序词汇的短语。 - **模糊查询**:`FuzzyQuery`允许搜索近似匹配的词。 #### 3.3 QueryParser - 自动生成`Query`对象,支持多种匹配模式(AND、OR、NOT等)。 ##...

    lucene核心资源包以及lucene的api

    - **Query**: Lucene中的查询对象,包括TermQuery(单个词项查询)、BooleanQuery(布尔逻辑查询)、PhraseQuery(短语查询)等。 - **IndexReader** 和 **IndexSearcher**: 分别用于读取索引和执行搜索,它们能...

    Lucene分词与查询详解

    Lucene支持多种查询类型,如布尔查询、短语查询、范围查询等。 5. **评分(Scoring)**:Lucene会根据查询和文档的相关性给出一个分数,决定搜索结果的排序。TF-IDF(Term Frequency-Inverse Document Frequency)...

    Lucenedemo

    3. 高级查询语法:支持更复杂的查询表达式,如布尔查询、短语查询、模糊查询等。 4. 增加搜索提示和建议功能:利用Suggester实现自动补全和相关性建议。 5. 多线程处理:在大型索引中,可以考虑使用多线程来加速索引...

    lucene实现企业产品检索

    Lucene提供了多种查询类型,如TermQuery、PhraseQuery、WildcardQuery等,可以根据需求选择合适的查询方式。接着,使用`IndexSearcher`执行查询,并通过`TopDocs`获取排名最高的搜索结果。 **4. 高级搜索特性** ...

    lucene高级智能查询小案例

    此外,还可以使用PhraseQuery或MultiFieldQueryParser来跨多个字段执行短语查询。 除了基础查询,Lucene还支持更复杂的表达式,例如使用FunctionQuery进行基于文档属性的排序,或者使用CustomScoreQuery自定义评分...

Global site tag (gtag.js) - Google Analytics