Lucene 排序及多字段查找(转)
来源:互联网 发布:房产证制作软件 编辑:程序博客网 时间:2024/05/18 00:56
默认情况下,IndexSearcher类的search方法返回查询结果时,是按文档的分值排序的,可以使用重载的search方法对结果排序
IndexSearcher.search(Query,Sort);
new Sort() 和 Sort.RELEVANCE,以及null一样,采用默认排序,要定义排序字段,方法是将字段传入Sort对象
Sort sort = new Sort(String field);
也可以对多个字段排序Sort sort = new Sort(String[] fields);
例:
Sort sort = new Sort(new SortField[]{new SortField(“title”),new SortField(“name”)});
Hits hits=searcher.search(query,Sort);
多字段查找MultiFieldQueryParser
只在某些Term中查找,不关心在哪个字段
Query query = new MultiFieldQueryParser.parse(“word”,new String[]{“title”,”content”},analyzer); //在title和content中找word
多字段时默认是OR关系,要改变它,使用以下方法:
Queryquery = MultiFieldQueryParser.parse(“word”,newString[]{“title”,”content”},newint[]{MultiFieldQueryParser.REQUIRED_FIELD,MultiFieldQueryParser.PROHIBITED_FIELD},analyzer);
其中:
REQUIRED_FIELD 表示该条件必须有
PROHIBITED_FIELD 表示必须不含
搜索多个索引文件MultiSearcher
1) 建立多个索引:使用不同的索引目录,实例化不同的IndexWriter
2) 建立多索引搜索器:
Searcher[] searchers = new SEARCHER[2];
Searchers[0] = new IndexSearcher(dir1); //搜索索引目录一
Searchers[1]= new IndexSearcher(dir2);//搜索索引目录二
Searcher searcher = new MultiSearcher(serarchers);
3) 开始查询:Hits hits = searcher.search(query);- Lucene 排序及多字段查找(转)
- Lucene 排序及多字段查找
- Lucene 排序及多字段查找
- Lucene 排序及多字段查找
- lucene多字段查询
- lucene多字段查询
- lucene多字段查询
- Lucene多字段搜索
- 使用lucene的多字段排序--回复网友BUFFON
- Lucene.Net多字段查询
- SQL多字段排序
- 多字段排序
- sql多字段排序
- 多字段查询排序
- thinkphp 多字段排序
- oracle多字段排序
- 多字段排序处理
- Mysql多字段排序
- 如何建立程序日志系统
- JAVA程序员不可不注意的编码规范
- 设计模式之Prototype(原型)
- 配置nagios前要安装的软件之apache&php篇
- 1.2 State Processing with cStateManager(用cStateManager处理状态)
- Lucene 排序及多字段查找(转)
- Google改进对Flash的搜索索引
- Pushlet(转)
- OpenBravo 2.35 安装
- 设计模式之Builder
- 我的翻译ob过程总结(献给和我一样的入门人员)
- 网络安全之身份认证和访问控制实现原理(ZZ)
- 设计模式之Singleton(单态)
- 博客开始的第一天