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));
                        }
                    }


  • 相关阅读:
    解决input 输入框频繁请求问题,如果拿取最后一次接口返回的值
    记录两个小问题
    axios 如何取消请求
    给vue组件绑定原生事件
    Vue3 与 Vue2的不同之处一 简单介绍 Vue 核心最基本的功能
    js将数组对象中,以某个值相同的对象合并成一个;即把某个值相同的对象内容合并成一个
    postcss-preset-env
    webpack5 tree shaking
    深拷贝
    webpack 性能优化
  • 原文地址:https://www.cnblogs.com/cuiyf/p/2964600.html
Copyright © 2011-2022 走看看