zoukankan      html  css  js  c++  java
  • Lucene 单域多条件查询

    在Lucene 中 BooleanClause用于表示布尔查询子句关系的类,包括:BooleanClause.Occur.MUST表示and,BooleanClause.Occur.MUST_NOT表示not,BooleanClause.Occur.SHOULD表示or。

    下面给出个例子

    1. **  
    2. * 根据信息分类和关键词进行查询  
    3. * @param type,资源的类型,其值为news或product  
    4. * @param searchKey,搜索的关键字  
    5. * @return Hits  
    6. */  
    7. public Hits executeSearch(String keyword)   
    8. {   
    9.   Hits result = null;   
    10.   if(keyword != null && !keyword.equals(""))   
    11.   {   
    12.     try    
    13.     {   
    14.       //根据关键字构造一个数组   
    15.       String[] key = new String[]{keyword,type};   
    16.       //同时声明一个与之对应的字段数组   
    17.       String[] fields = {"title"};   
    18.       //声明BooleanClause.Occur[]数组,它表示多个条件之间的关系   
    19.       BooleanClause.Occur[] flags=new BooleanClause.Occur[]{BooleanClause.Occur.MUST,BooleanClause.Occur.MUST};   
    20.       ChineseAnalyzer analyzer = new ChineseAnalyzer();   
    21.       //用MultiFieldQueryParser得到query对象   
    22.       Query query = MultiFieldQueryParser.parse(key, fields, flags, analyzer);   
    23.       //c:/index表示我们的索引文件所在的目录   
    24.       IndexSearcher searcher = new IndexSearcher("c:/index");   
    25.       //查询结果   
    26.       result = searcher.search(query);   
    27.     } catch (Exception e)   
    28.     {   
    29.       e.printStackTrace();   
    30.     }   
    31.   }   
    32.   return result;   
    33. }  

      多条件索引关系

    BooleanClause用于表示布尔查询子句关系的类,包括:BooleanClause.Occur.MUST,

    BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。有以下6种组合: 
    1.MUST和MUST:取得连个查询子句的交集。 
    2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。 
    3.MUST_NOT和MUST_NOT:无意义,检索无结果。 
    4.SHOULD与MUST、SHOULD与MUST_NOT:SHOULD与MUST连用时,无意义,结果为MUST子句的检索

    结果。与MUST_NOT连用时,功能同MUST。 
    5.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。

  • 相关阅读:
    Async/await 和 Promises 区别
    javaScript 如何使用js追加字符串呢?
    JavaScript深入之继承的多种方式和优缺点
    在原生JavaScript中创建不可变对象
    websocket的用途/场景
    爬虫新宠requests_html 带你甄别2019虚假大学 #华为云·寻找黑马程序员#
    #华为云·寻找黑马程序员#微服务-你真的懂 Yaml 吗?
    #华为云·寻找黑马程序员#【代码重构之路】使用Pattern的正确姿势
    Python-Excel 模块哪家强 #华为云·寻找黑马程序员#
    多元算力加持,华为云鲲鹏大数据服务公测上线
  • 原文地址:https://www.cnblogs.com/dingjiaoyang/p/6115358.html
Copyright © 2011-2022 走看看