当前位置:  开发笔记 > 编程语言 > 正文

Lucene分析仪和点

如何解决《Lucene分析仪和点》经验,为你挑选了1个好方法。

是Lucene的新手.

有什么方法可以让Lucene分析仪不忽略字符串中的点?例如,如果我的搜索条件是:"ABCD",Lucene应该只给我搜索结果中有"ABCD"而不是"ABCD"的文件....



1> itsadok..:

这都与您使用的分析仪有关.在StandardAnalyzer做一些复杂的事情用点名称,企图以"做你的意思." 也许这WhitespaceAnalyzer将更符合您的需求.

public static void main(String[] args) throws Exception {
    RAMDirectory dir = new RAMDirectory();
    IndexWriter iw = new IndexWriter(dir, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.LIMITED);
    Document doc = new Document();
    doc.add(new Field("text", "A.B.C.D DEF", Field.Store.YES, Field.Index.ANALYZED));
    iw.addDocument(doc);
    iw.close();

    IndexSearcher searcher = new IndexSearcher(dir);
    QueryParser queryParser = new QueryParser("text", new WhitespaceAnalyzer());

    // prints 0 
    System.out.println(searcher.search(queryParser.parse("ABCD"), 1).totalHits);

    // prints 1
    System.out.println(searcher.search(queryParser.parse("A.B.C.D"), 1).totalHits);
}

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有