zoukankan      html  css  js  c++  java
  • 《Lucene in Action》 MoreLikeThis 实例

    《Lucene in Action》第二版中对MoreLikeThis 介绍的例子,搜索类似的书籍,代码如下,供大家学习参考:

    public class BooksMoreLikeThis {
    public static void main(String[] args) throws Throwable {
    String indexDir = System.getProperty("index.dir");
    FSDirectory directory = FSDirectory.open(new File(indexDir));
    IndexReader reader = IndexReader.open(directory);
    IndexSearcher searcher = new IndexSearcher(reader);
    int numDocs = reader.maxDoc();
    MoreLikeThis mlt = new MoreLikeThis(reader);
    mlt.setFieldNames(new String[] {"title", "author"});
    mlt.setMinTermFreq(1); //默认值是2,建议自己做限制,否则可能查不出结果
    mlt.setMinDocFreq(1); //默认值是5,建议自己做限制,否则可能查不出结果
    for (int docID = 0; docID < numDocs; docID++) {
    System.out.println();
    Document doc = reader.document(docID);
    System.out.println(doc.get("title"));
    Query query = mlt.like(docID);
    System.out.println(" query=" + query);
    TopDocs similarDocs = searcher.search(query, 10);
    if (similarDocs.totalHits == 0)
    System.out.println(" None like this");
    for(int i=0;i<similarDocs.scoreDocs.length;i++) {
    if (similarDocs.scoreDocs[i].doc != docID) {
    doc = reader.document(similarDocs.scoreDocs[i].doc);
    System.out.println(" -> " + doc.getField("title").stringValue());
    }
    }
    }
    searcher.close();
    reader.close();
    directory.close();
    }
    }

    引用请注明:【爱开卷360】《Lucene in Action》 MoreLikeThis 实例

  • 相关阅读:
    json、txt、xlsx
    word-排版准备与文字清洗
    运营能力分析
    获利能力分析
    偿债能力分析
    现金流量表结构分析
    负债项目分析
    资产负债表分析
    财务报表的分析
    会计电算化账务处理流程8
  • 原文地址:https://www.cnblogs.com/ibook360/p/2278902.html
Copyright © 2011-2022 走看看