码迷,mamicode.com
首页 > Web开发 > 详细

lucene 解决主键重复

时间:2017-05-10 00:13:53      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:设置   query   tail   int   相同   filter   details   document   data-   

 

比如有两条记录
Document0: 
                id:1   pk
                content :hello 
Document1: 
                id :1  pk
               content :hello world
建立索引用ik分词,建立索引 
搜索content 会出现两条记录

解决:使用 QueryFilter进行搜索过滤
Query query = new TermQuery(new Term("content", "hello"));
Filter filter = new DuplicateFilter("id");
Query query1 = new FilteredQuery(query, filter);
ScoreDoc[] docs = searcher.search(query1, Integer.MAX_VALUE).scoreDocs;
此时出现的结果就只有一条了,但可能命中的结果不准确,可以设置读取的文章是第一篇还是最后一篇 ,此方法是为了解决如一片文章分多页,一页为一个document,一篇文章的多页id相同的问题。

lucene 解决主键重复

标签:设置   query   tail   int   相同   filter   details   document   data-   

原文地址:http://www.cnblogs.com/wangnanhui/p/6833191.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!