zoukankan      html  css  js  c++  java
  • Lucene 高级搜索

    1.文本搜索

      QueryParser支持默认搜索域, 第一个参数为默认搜索域.
      如果在执行parse方法的时候, 查询语法中包含域名则从指定的这个域名中搜索, 如果只有查询的关键字,则从默认搜索域中搜索结果.
      需求描述 : 查询名称中包含华为手机关键字的结果.

    // Query query = queryParser.parse("华为手机");// 默认在name域中查
    // Query query = queryParser.parse("华为 OR 手机");
    Query query = queryParser.parse("华为 AND 手机");

    2. 数值范围搜索

      需求描述 : 查询价格大于等于100, 小于等于1000的商品

    Query query = DoublePoint.newRangeQuery("price", 100, 1000);

    3. 组合搜索

      需求描述 : 查询价格大于等于100, 小于等于1000, 并且名称中不包含华为手机关键字的商品
        BooleanClause.Occur.MUST 必须 相当于and, 并且
        BooleanClause.Occur.MUST_NOT 不必须 相当于not, 非
        BooleanClause.Occur.SHOULD 应该 相当于or, 或者
        注意 : 如果逻辑条件中, 只有MUST_NOT, 或者多个逻辑条件都是MUST_NOT, 无效, 查询不出任何数据.

    Query query1 = DoublePoint.newRangeQuery("price", 100, 1000);
    Query query2 = queryParser.parse("华为 AND 手机");
    // 创建布尔查询对象(组合查询对象)
    BooleanQuery.Builder query = new BooleanQuery.Builder();
    query.add(query1, BooleanClause.Occur.MUST);
    query.add(query2, BooleanClause.Occur.MUST_NOT);
    TopDocs topDocs = searcher.search(query.build(), 10);
  • 相关阅读:
    HDU 2414 Chessboard Dance(模拟题,仅此纪念我的堕落)
    poj 1625 (AC自动机好模版,大数好模版)
    HDU 1907 John(博弈)
    如何创建一个.NET Core项目
    C#中的委托
    WEB开发者必备的7个JavaScript函数
    带你进入Angular js的大门
    程序猿的年终总结,各种版本各种残
    ASP.NET 开发人员不必担心 Node 的五大理由
    7 个 jQuery 最佳实践
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12549426.html
Copyright © 2011-2022 走看看