zoukankan      html  css  js  c++  java
  • lucene3.0 中BooleanQuery 的使用

    ==================转自================

    http://www.wenhq.com/article/view_411.html

    原文链接:http://www.wenhq.com/article/view_431.html
    欢迎转载,请注明出处:亲亲宝宝

    ===============================

    lucene3.0中BooleanQuery 实现与或的复合搜索 .
    BooleanClause用于表示布尔查询子句关系的类,包括:BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。必须包含,不能包含,可以包含三种.有以下6种组合: 
     
    1.MUST和MUST:取得连个查询子句的交集。 
    2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。 
    3.SHOULD与MUST_NOT:连用时,功能同MUST和MUST_NOT。
    4.SHOULD与MUST连用时,结果为MUST子句的检索结果,但是SHOULD可影响排序。
    5.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。
    6.MUST_NOT和MUST_NOT:无意义,检索无结果。 
     

           private static void search(String str) throws Exception {

                  IndexReader reader = IndexReader.open(FSDirectory.open(new File(

                                INDEX_DIR)), true); // only searching,

                  // so read-only=true

                  Searcher searcher = new IndexSearcher(reader);

                  Analyzer analyzer = new IKAnalyzer();

                  String field = "contents";

                  QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, field,

                                analyzer);

                  Query query = null;

                  str = getKeyWord(str);

                  query = parser.parse(str);

                  BooleanQuery q = new BooleanQuery();

                  q.add(query, BooleanClause.Occur.MUST);

                  QueryParser parser2 = new QueryParser(Version.LUCENE_CURRENT, "keyword",  analyzer);

                  Query q2 = parser2.parse(str);

    //            q2.setBoost(10);

                  q.add(q2, BooleanClause.Occur.SHOULD);

                   TopScoreDocCollector collector = TopScoreDocCollector.create(10, false);

                  searcher.search(q, collector);

                  ScoreDoc[] hits = collector.topDocs().scoreDocs;

           }
  • 相关阅读:
    log4net的使用
    数据库概念及构成
    基于C#WPF框架——动画
    基于C# WPF框架的贪吃蛇
    使用Teigha.net读取CAD的常用功能模块
    Teigha.net实体属性注释
    .net(C#数据库访问) Mysql,Sql server,Sqlite,Access四种数据库的连接方式
    Delphi解析修改Json文件,基于superobject.pas(ISuperObject)
    C++结构体与Delphi结构体相互传参,结构体中包含结构体的嵌套,数组指针
    C++ Json解析CJsonObject的详细使用
  • 原文地址:https://www.cnblogs.com/zjw520/p/3028202.html
Copyright © 2011-2022 走看看