在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。。