zoukankan      html  css  js  c++  java
  • lucene 多索引目录搜索实现方法

    http://akululu.iteye.com/blog/314130
    多索引目录就是要在多个索引目录的中进行比较搜索,类似概念在SQL中就是select * from TableA union select * from TableB。
    IndexSearcher[] searchers = new IndexSearcher[2];
    searchers[0] = new IndexSearcher(IndexPath0);
    searchers[1] = new IndexSearcher(IndexPath1);

    方法a
    MultiSearcher multisearcher = new MultiSearcher(searchers);
    TopDocs multitopdocs = multisearcher.Search(query, null, 1000);
    这个搜索的结果可能有相同的信息,比如你有一条相同的信息在多个目录中索引,搜索的结果就会出现多次相同的信息。

    方法b
    还有一种搜索方式是用到ParallelMultiSearcher这个对象,它是从MulitSearcher继承而来。
    ParallelMultiSearcher parallelmultisearcher = new ParallelMultiSearcher(searchers);
    TopDocs paralleltopdocs = parallelmultisearcher.Search(query, null, 1000);
    这个搜索是对搜索后的结果进行合并,剔除重复的信息。
     
    方法c
    初始化多个IndexRader,一个目录就是一个IndexReader,最后整合成一个IndexReader数组,实例化IndexSearcher时传入他
    List<IndexReader> allIndexReaderList = new ArrayList<IndexReader>();
    for (String filePath : indexFilePathList) {
         File indexDirFile = new File(filePath);
         if (indexDirFile.exists()) {
              Directory indexDir = FSDirectory.open(indexDirFile);
              IndexReader indexReader = IndexReader.open(indexDir, true);
              allIndexReaderList.add(indexReader);
         }
    }

    IndexReader[] fileIndexReaderArr = allIndexReaderList.toArray(new IndexReader[0]);

    MultiReader multiReader = new MultiReader(fileIndexReaderArr, true);

    IndexSearcher indexSearcher = new IndexSearcher(multiReader);
  • 相关阅读:
    Java面试宝典
    如何写一个webService接口
    webservice接口的开发和调用
    基于CXF框架下的SOAP Webservice服务端接口开发
    WebService—CXF整合Spring实现接口发布和调用过程
    使用cxf开发webservice接口
    webservice接口与HTTP接口学习笔记
    C#图解教程 第二十五章 其他主题
    C#图解教程 第二十四章 反射和特性
    C#图解教程 第二十三章 预处理指令
  • 原文地址:https://www.cnblogs.com/svennee/p/4080619.html
Copyright © 2011-2022 走看看