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

lucene-近音词查询

阅读更多

分析器通过Metaphone算法实现近音词查询,也可采用类似于Soundex的其它可行的算法

public void testKoolKat() throws Exceptoin{

RAMDirectory directory=new RAMDirectory();

Analyzer analyzer=new MetaphoneReplacementAnalyzer();

 

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

Document doc=new Document();

doc.add(Field.Text("contents","cool cat"));

writer.addDocument(doc);

writer.close();

IndexSearcher searcher=new IndexSearcher(directory);

Query query=QueryParser.parse("kool kat","contents",analyzer);

 

Hits hits=searcher.search(query);

}

public class MetaPhoneReplacementAnalyzer extends Anaylyer{

public TokenStream tokenStream(String fieldName,Reader reader){

return new MetaphoneReplacementFilter{

new LetterTokenizer(reader));

}

}

}

public class MetaphoneReplacementFilter extends TokenFilter{

publicstatic final String METAPHONE="METAPHONE";

privateMetaphone metaphoner=new Metaphone();

publicMetaphoneReplacementFilter(TokenStream input){

super(input);

}

publicToken next() throws IOException{

Token t=input.next();

if (t==null) return null;

try{

return newToken(metaphoner.encode(t.termText()),t.startOffset().t.endOffset(),METAPHONE);//设置语汇单元的token类型。

}

catch(EncodeException e){

return t;

}

}

}

分享到:
评论

相关推荐

    lucene-core-2.4.0.jar

    除了基本的搜索功能,Lucene还支持高级特性,如地理位置搜索、近实时搜索(NRT)、多字段排序等。此外,随着版本迭代,Lucene与其他项目(如Solr、Elasticsearch)的结合,使其在大数据、云服务等领域发挥着重要作用...

    lucene-5.0.0 完整资源(包含Jar包)

    4. **高级特性**:Lucene 还支持多字段搜索、近实时搜索(NRT)、拼写检查、高亮显示搜索结果、 faceted search(分面搜索)等高级功能,增强了用户体验。 5. **内存和磁盘管理**:Lucene 使用段(Segment)的概念...

    lucene-4.2.1-src.tgz

    7. **高级功能**:Lucene还包括多线程支持、近实时搜索、自定义排序、过滤器(`Filter`)和拦截器(`Collector`)等高级特性,允许开发者进行更复杂的检索策略设计。 8. **扩展性**:Lucene本身只是一个库,开发者...

    lucene-5.5.3.zip

    - **索引**:Lucene的核心是建立倒排索引,它将文本内容转换成可快速查询的数据结构。索引过程包括分析、词项化、文档ID分配等步骤。 - **分词器(Tokenizer)**:负责将输入的文本分割成一个个有意义的词元...

    lucene-3.5.0.jar

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

    lucene-4.6.1全套jar包

    在4.6.1版本中,Lucene 支持分词、分析和标准化,这使得搜索时能够进行模糊匹配和同义词查询。同时,它支持倒排索引,这是一种将词汇表映射到包含这些词汇的文档的索引结构,大大提高了搜索速度。 **2. 查询解析与...

    lucene-4.7.0官方文档

    3. **查询解析**:用户输入的查询字符串会被转换为内部表示,Lucene支持多种查询语法,如布尔查询、短语查询、前缀查询、范围查询等。 4. **搜索执行**:查询执行涉及对索引的遍历,通过Scorer计算文档与查询的相关...

    Lucene分词器资源包

    5. **Lucene-Solr Grandparent**: `lucene-solr-grandparent.jar` 可能与Solr有关,Solr是基于Lucene的全文搜索引擎服务器,提供了更高级的功能,如集群、分布式搜索、近实时搜索等。这个jar可能包含了与Solr集成的...

    lucene-2.9.3-src.zip

    - **查询解析器(QueryParser)**:将用户输入的查询字符串转化为Lucene可理解的查询对象。 3. **设计模式**: - **工厂模式**:Analyzer、QueryParser等类的创建使用了工厂模式,方便替换不同的实现。 - **迭代...

    Lucene-in-Action-2nd-Edition---Manning

    - **近实时搜索(Near Real-Time Search)**:在索引更新后几乎立即可以进行搜索的功能。 - **线程安全(Thread Safety)**:确保多个线程访问同一索引时不会出现问题的机制。 - **优化(Optimization)**:减少段的数量,...

    lucene-4.8.0源代码,比较全

    4. 查询解析(Query Parsing):Lucene提供了多种查询解析器,如ClassicQueryParser、MultiFieldQueryParser等,用于将用户输入的查询字符串转换为查询对象。4.8.0版本对查询解析器的性能和灵活性进行了增强。 5. ...

    lucene-3.6.2.tgz

    - **模糊搜索**:通过支持音近词和形近词搜索,用户输入错误也能找到相关结果。 4. **API与开发** - **简洁API**:Lucene提供了直观易用的API,开发者可以快速集成到自己的项目中。 - **社区支持**:作为Apache...

    lucene-api.rar_lucene

    - **近实时搜索**: Lucene的NRT(Near Real Time)机制允许在索引更新后几乎立即进行搜索。 总之,Lucene API提供了丰富的工具和类来实现全文索引和搜索功能,通过熟练掌握这些组件和工作流程,开发者可以构建出...

    lucene-2.4.1搜索框架

    例如,为了提高搜索速度,你可能需要合理配置缓存策略,或者利用Lucene的近实时搜索特性。对于多语言支持,你需要选用合适的国际化分析器,处理不同语言的分词规则。而实时索引更新则涉及到IndexWriter的异步写入和...

    最新版linux lucene-8.9.0.tgz

    2. **新特性**:新版本可能添加了新的API或功能,比如支持新的查询语法、更灵活的分析器选项或者增强的近实时搜索能力。这些特性有助于开发者构建更复杂的搜索逻辑和更丰富的搜索体验。 3. **错误修复**:8.9.0版本...

    lucene-5.2.1

    Lucene支持多种查询类型,如布尔查询、短语查询、范围查询等。用户可以通过QueryParser或直接创建Query对象来构造查询。5.2.1版本中,查询解析器已经优化,能更好地处理用户输入,提高查询性能。 5. **搜索(Search...

    lucene-3.6.1

    3. 查询解析:Lucene能够解析用户输入的查询字符串,转换成内部可执行的查询对象。3.6.1版本改进了查询语法,支持更复杂的布尔逻辑和模糊匹配。 4. 搜索引擎API:Lucene提供了一套丰富的API,开发者可以通过这些API...

    lucene-4.0.0

    1. **全文检索基础**:Lucene 的核心功能是全文检索,它能够对文本进行分词、去除停用词等预处理,然后建立倒排索引,使得用户可以高效地搜索到包含特定关键词的文档。 2. **索引构建**:在 Lucene 4.0.0 中,...

    Lucene 3.6.2 源代码

    8. **近实时搜索(Near Real-time Search)**: 虽然Lucene是基于磁盘的,但在3.6.2版本中,通过使用NRTManager,开发者可以实现近乎实时的搜索体验,即使在索引更新后也能快速反映到搜索结果中。 9. **文档更新与...

    Incubating-Apache-Lucene.Net-2.0-004-11Mar07.src.zip

    7. 近实时搜索:虽然Lucene.Net不直接支持实时索引,但通过适当的配置和设计,可以实现近实时搜索,即在短时间内让新添加的文档可见。 8. 扩展性:Lucene.Net允许开发者自定义分词器、过滤器和查询解析器,以满足...

Global site tag (gtag.js) - Google Analytics