Lucene分析仪和点

时间:2009-03-30 23:11:05

标签: lucene lucene.net

是Lucene的新手。

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

1 个答案:

答案 0 :(得分:5)

所有关于您使用的分析仪。 StandardAnalyzer以虚线名称执行some complicated things,试图“做你的意思”。也许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);
}
相关问题