`

PrefixQuery前缀搜索符合的所有放入map

阅读更多
/** PrefixQuery前缀搜索符合的所有放入map


     *  @param File indexDir,索引目录;


     *  @param String word 索引关键词前缀


     *  @return Map


     *  @author niewj @since 2011-3-10 */
 


    public

static
Map getPairMap(File indexDir,String field,String word) { 


        Map pairMap=new
HashMap(); 


        Directory dir=null



        try



            dir = new
SimpleFSDirectory(indexDir); 


            IndexSearcher searcher=new
IndexSearcher(dir); 


            Term term=new
Term(field,word); 


            PrefixQuery query=new
PrefixQuery(term); 


             

            TopDocs topDocs=searcher.search(query,5000
); 


            System.out.println("total hit:"
+topDocs.totalHits); 


            ScoreDoc[] docs=topDocs.scoreDocs; 

            for
(
int
i=
0
;i

                Document doc=searcher.doc(docs[i].doc); 

                String pair=doc.getField("pairContent"
).stringValue(); 


                String value=doc.getField("pairLines"
).stringValue(); 


                pairMap.put(pair, Integer.parseInt(value)); 

                System.out.println(pair+"-"
+value); 


            } 

        } catch
(IOException e) { 


            e.printStackTrace();    //
 


        } 

        return
pairMap; 


    } 



分享到:
评论

相关推荐

    Lucene 搜索方法(前缀搜索)

    总结来说,Lucene的前缀搜索功能通过`PrefixQuery`类实现,结合适当的查询解析器和分析器,为用户提供了一种快速、灵活的方式,来查找与输入前缀相关的所有文档。这在诸如在线商店、知识库、搜索引擎等应用中具有很...

    lucene-搜索过程源码解析-1-Weight生成.txt

    对于前缀查询,可以通过 `PrefixQuery.getEnum` 方法来获取一个 `PrefixTermEnum` 对象,该对象用于遍历所有与前缀相匹配的术语。 ```java public TermEnum getEnum(AtomicReaderContext context) throws ...

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

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

    lucene高级搜索进阶项目_02

    除了基本的单词查询,Lucene还支持更复杂的查询类型,如PrefixQuery(前缀查询)、WildcardQuery(通配符查询)、FuzzyQuery(模糊查询)、RegexQuery(正则表达式查询)等。这些查询类型极大地扩展了搜索能力,允许...

    PreFixFilterQuery.java

    ilter:所有的过滤器都在服务端生效,以保证被过滤掉的数据不会被传送到客户端 •过滤器是在HBase服务器端上执行判断操作 •过滤器可以应用到行键(RowFilter),列限定符(QualifierFilter)或者数据值...

    lucene学习笔记

    3. `PrefixQuery`:前缀搜索,自动在字段值的末尾添加`*`,实现前缀匹配。 4. `RangeQuery`:范围搜索,适用于数值型字段,在指定范围内查找文档。 5. `FilteredQuery`:带有过滤条件的搜索,结合`Query`和`Filter`...

    lucene.zip

    3. **PrefixQuery**:匹配以特定前缀开头的词项,如`new PrefixQuery(new Term("field", "wo"))`。 4. **PhraseQuery**:用于搜索短语,如`new PhraseQuery().add(new Term("field", "word1")).add(new Term("field...

    lucene高级搜索进阶项目_01

    《Lucene高级搜索进阶项目_01》 在信息技术高速发展的今天,搜索引擎已经成为我们获取信息的重要工具。其中,Apache Lucene是一个强大的全文检索库,它为开发人员提供了构建高效、可扩展的搜索功能的基础。本项目将...

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

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

    lucene搜索引擎培训资料

    3. **模糊搜索**: 支持通配符查询和前缀查询,如使用`WildcardQuery`和`PrefixQuery`。 4. **近似搜索**: `FuzzyQuery`支持模糊查询,允许用户输入拼写错误的查询词。 5. **高亮显示**: 使用`Highlighter`将搜索...

    Lucene时间区间搜索

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

    Ajax+Lucene 打造搜索引擎

    在现代Web应用中,搜索引擎是不可或缺的一部分,它们帮助用户快速找到所需的信息。本文将深入探讨如何结合Ajax技术和Apache Lucene库来构建一个高效、实时的内部搜索引擎。Ajax(Asynchronous JavaScript and XML)...

    【分享:lucene学习资料】---<下载不扣分,回帖加1分,欢迎下载,童叟无欺>

    9.6. 使用前缀搜索—PrefixQuery 19 9.7. 短语搜索—PhraseQuery 20 9.8. 多短语搜索—MultiPhraseQuery 20 9.9. 模糊搜索—FuzzyQuery 21 9.10. 通配符搜索—WildcardQuery 21 9.11. 跨度搜索 21 9.11.1. ...

    lucene_3.6.1_API

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

    lucene高级智能查询小案例

    在高级查询中,我们可能会利用FuzzyQuery进行模糊匹配,或者使用PrefixQuery进行前缀搜索,这些都能极大地提高用户查询的灵活性。 在智能查询中,更常见的功能是短语查询和近似查询。SpanQuery类族提供了一种精确...

    Lucene教程

    1. **Query**: Lucene支持多种查询类型,如TermQuery(单个词查询)、BooleanQuery(布尔组合查询)、PrefixQuery(前缀查询)和WildcardQuery(通配符查询)。 2. **Score**: 搜索结果中的每个文档都有一个得分,...

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

    《Lucene使用代码实例之搜索文档》 Lucene是一个高性能、全文检索库,它提供了强大的文本分析和索引功能,广泛应用于搜索引擎开发和其他需要高效文本处理的场景。本篇文章主要面向初学者,通过实例详细解释如何使用...

    Lucene2.9英文API

    常见的查询类型有:`TermQuery`(精确匹配)、`BooleanQuery`(布尔组合)、`PrefixQuery`(前缀匹配)等。 3. **搜索(Searching)**: 使用`Searcher`类执行查询,它返回匹配文档的排序列表。`Hits`或`TopDocs`...

    Lucene 3.6 学习笔记

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

    lucene.net

    - **PrefixQuery** 和 **WildcardQuery**: 支持前缀和通配符查询,允许用户进行模糊搜索。 - **FuzzyQuery**: 实现模糊搜索,根据 Levenshtein 距离计算相似度。 - **ScoreFunction**: 可以自定义评分算法,用于控制...

Global site tag (gtag.js) - Google Analytics