lucene多字段查詢

          http://hi.baidu.com/%B3%BF%D1%F4%C2%FE%B2%BD/blog/item/9478602deaa1cd37349bf7d5.html


          我的例子就是2.0的,現在給你的是兩個域,你可以用n個域

          BooleanQuery typeNegativeSearch = new BooleanQuery();
          QueryParser parser = new QueryParser("contents", new Analyzer());
                          parser.setDefaultOperator(QueryParser.AND_OPERATOR);
                          query = parser.parse(queryString);
                          QueryParser parser2 = new QueryParser("adISELL", new Analyzer());  

                     
                          query2 = parser2.parse("\"2\"");  
          QueryParser parser3 = new QueryParser("adISELL", new Analyzer());              
                          query3 = parser3.parse("\"2\"");             
          QueryParser parser4 = new QueryParser("adISELL", new Analyzer());              
                          query4 = parser4.parse("\"2\"");             
          QueryParser parser4 = new QueryParser("adISELL", new Analyzer());              
                          query4 = parser4.parse("\"2\"");  
          。。。。
               QueryParser parser..n = new QueryParser("adISELL", new Analyzer());           

            
                          query..n = parser..n.parse("\"2\"");  
                          
                          typeNegativeSearch.add(query,Occur.MUST);
                          typeNegativeSearch.add(query2,Occur.MUST);
          typeNegativeSearch.add(query3,Occur.MUST);
                          typeNegativeSearch.add(query4,Occur.MUST);
          .....
          typeNegativeSearch.add(query..n,Occur.MUST);

          hits = searcher.search(typeNegativeSearch);

           

          1, 幾種span的querySpanTermQuery:檢索效果完全同TermQuery,但內部會記錄一些位置信息

          ,供SpanQuery的其它API使用,是其它屬于SpanQuery的Query的基礎。
          SpanFirstQuery:查找方式為從Field的內容起始位置開始,在一個固定的寬度內查找所指定的

          詞條。
          SpanNearQuery:功能類似PharaseQuery。SpanNearQuery查找所匹配的不一定是短語,還有可

          能是另一個SpanQuery的查詢結果作為整體考慮,進行嵌套查詢。
          SpanOrQuery:把所有SpanQuery查詢結果綜合起來,作為檢索結果。
          SpanNotQuery:從第一個SpanQuery查詢結果中,去掉第二個SpanQuery查詢結果,作為檢索結

          果。

          2, 多條件索引關系

          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:表示“或”關系,最終檢索結果為所有檢索子句的并集。



          posted on 2008-04-10 13:45 魯勝迪 閱讀(1802) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統(tǒng)計

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章分類

          新聞分類

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鹰潭市| 民县| 崇仁县| 宁夏| 上犹县| 佛冈县| 梓潼县| 镇坪县| 军事| 海门市| 昌乐县| 衡南县| 花垣县| 合川市| 永修县| 浏阳市| 福安市| 曲沃县| 沙田区| 泾源县| 太白县| 宜丰县| 清苑县| 迭部县| 柘城县| 澳门| 东辽县| 娱乐| 若尔盖县| 木兰县| 临桂县| 工布江达县| 桓台县| 沿河| 翼城县| 鄂伦春自治旗| 嘉峪关市| 清苑县| 科技| 清水县| 保德县|