zoukankan      html  css  js  c++  java
  • 关于lucene2.2部分代码

    1.单字段查询,一个filed对应一个keyword

    QueryParser parser = new MultiFieldQueryParser(fieldName, analyzer);
    parser.setAllowLeadingWildcard(true);
    Query query = null;
    query = parser.parse(keyword);
    hits = searcher.search(query);
    if (hits != null) {
                        docList = new ArrayList<Document>();
                        for (int i = 0; i < hits.length(); i++) {
                            docList.add(hits.doc(i));
                        }
                    }
    searcher.close();

    2.多字段查询 多个filed对应一个keyword

    QueryParser parser = new MultiFieldQueryParser(fieldNames, analyzer);
    parser.setAllowLeadingWildcard(true);
    Query query = null;
    query = parser.parse(keyword);
    hits = searcher.search(query);

    3.复合查询 一个filed对应一个keyword  剩下的多个field对应另外一个keyword

    BooleanQuery bQuery = new BooleanQuery();
    QueryParser queryParserCategory = new QueryParser(fieldNames[0], analyzer);
    queryParserCategory.setAllowLeadingWildcard(true);
    Query queryCategory = null;
    queryCategory = queryParserCategory.parse(keywords[0]);
    bQuery.add(queryCategory, BooleanClause.Occur.MUST);
    String[] fieldNamesLeft = new String[fieldNames.length - 1];
    for (int i = 1; i < fieldNames.length; i++) {
           fieldNamesLeft[i - 1] = fieldNames[i];
     }
    QueryParser parser = new MultiFieldQueryParser(fieldNamesLeft, analyzer);
    parser.setAllowLeadingWildcard(true);
    Query query = null;
    query = parser.parse(keywords[1]);
    bQuery.add(query, BooleanClause.Occur.MUST);
    if (bQuery != null) {
                    hits = searcher.search(bQuery);
                    if (hits != null) {
                        docList = new ArrayList<Document>();
                        for (int i = 0; i < hits.length(); i++) {
                            docList.add(hits.doc(i));
                        }
                    }


  • 相关阅读:
    ArrayList源码解析
    HashSet的实现原理
    Spark Streaming之四:Spark Streaming 与 Kafka 集成分析
    Spark Streaming之三:DStream解析
    Spark Streaming之二:StreamingContext解析
    curl与wget区别
    MongoDB之二(增删查改)
    Thread之九:stop
    mysql实战优化之九:MySQL查询缓存总结
    PBE加密算法
  • 原文地址:https://www.cnblogs.com/cuiyf/p/2964600.html
Copyright © 2011-2022 走看看