在Java中,如何根据文本搜索属性的相关性对对象列表进行排序?

在Java中,如何根据文本搜索属性的相关性对对象列表进行排序?,java,search,lucene,apache-commons,relevance,Java,Search,Lucene,Apache Commons,Relevance,例如,假设我有一个图书项目的ArrayList。图书项目具有属性Book\u title,Book\u author,以及Book\u isbn 我还有一个简单的字符串搜索查询“query\u str”(比如) 如何根据book\u title、book\u author与“query\u str”的搜索相关性,对图书对象的ArrayList进行排序 我是一名应用程序开发人员,对搜索排名算法不是很有经验,但我发现Lucene非常有趣。问题是,对字符串列表进行排序很简单。。。但是如何为对象列表执行

例如,假设我有一个图书项目的
ArrayList
。图书项目具有属性
Book\u title
Book\u author
,以及
Book\u isbn

我还有一个简单的字符串搜索查询“
query\u str
”(比如)

如何根据
book\u title
book\u author
与“
query\u str
”的搜索相关性,对图书对象的
ArrayList
进行排序

我是一名应用程序开发人员,对搜索排名算法不是很有经验,但我发现
Lucene
非常有趣。问题是,对字符串列表进行排序很简单。。。但是如何为对象列表执行此操作?(可能使用
toString()
方法)


如何开始使用Lucene进行此操作?

默认情况下,在Lucene中搜索时,结果按相关性排序。 如果您想使用一些字段,特别是用于相关性(评分)的字段,lucene提供了提高评分的方法。只需搜索“在lucene中提升”。
-查询级别提升可能最适合您的情况。

您应该使用Comparable接口或Comparator类来比较和排序对象。@Phill我也这么认为。。。但是我很难从lucene找到正确的方法来实现comparable。。