gpt4 book ai didi

java - 如何在lucene中对索引文件进行排序

转载 作者:行者123 更新时间:2023-12-04 04:52:53 25 4
gpt4 key购买 nike

我有一个由 lucene 制作的索引,其中的每个文档都有 3 个文件,其中一个是我的频率的数字字段。我在我的索引中搜索,但在它之前我想按数字字段对其进行排序。在我搜索之前,有什么办法可以按 lucene 对其进行排序吗?

最佳答案

在搜索之前排序并没有多大意义,因为 Lucene 正在创建一个用于搜索的倒排索引,而不是存储和搜索一组连续的文档。

但是,听起来您想要运行搜索并获得已按指定方式排序的结果。

这是通过传递 Sort 来完成的。到 IndexSearcher.search打电话,比如:

SortField field = new SortField("frequency", SortField.Type.FLOAT);
//Sorting, first, by "frequency", then by relevance score
Sort sort = new Sort(field, Sort.FIELD_SCORE);
searcher.search(query, maxDocs, sort);

这个领域的名字让我怀疑你是不是在重新发明轮子。 Lucene 已经将词频纳入其相关性得分中。如果您想调整这种评分,创建自定义 Similarity 可能是一个更好的主意。为您计算分数的类,扩展 TFIDFSimilarity DefaultSimilarity ,并覆盖方法 tf ,特别是。

关于java - 如何在lucene中对索引文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17162900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com