最近用lucene写一个多目录分布式检索的程序。不知道各位有没有遇到ParallelMultiSearcher无法使用自定排序的问题。我用indexseacher时验证我扩展的自定义排序是没有问题的。但是在ParallelMultiSearcher的情况下却始终不能按照我制定的排序规则去进行排序。郁闷至极,只好跟进lucene的源码中看个究竟。发现排序没有问题。只是PriorityQueue中堆栈总在我put 和 pop的情况下给doc的顺序改变了。没办法。只好自己扩展了堆栈放入和弹出部分代码。终于将问题解决了。下面是我修改的源码。附件上来。希望能帮助和我一样遇到问题的朋友。
lucene的自定义排序:
DefaultSortImpl.java
ParallelMultiSearcher排序修改:
ParallelMultiSearcher.java
DefaultSortImpl.java
posted on 2007-08-29 12:03
安文豪 阅读(2155)
评论(0) 编辑 收藏