我理解分片计数器,在这里:问题是简单的计数器在我的应用程序中不起作用。我按特定变量对实体进行排序,因此返回的不是计数,而是更多的排名。我目前的方法是:
SELECT COUNT(this) FROM Entity.class WHERE value <= ?
结果+1是参数相对于持久实体对象中的值变量的排名。它的限制是返回的最高等级是1001,因为count()最多只能返回1000个等级。我不能将排名存储在Entity对象上的原因是排名更新非常频繁,并且重新设置此排名变量的成本太高。
有什么最好的方法可以做到这一点吗?
我尝试为查询和文档计算TF-IDF,并使用COS距离对结果进行排序,得到与top50相似的文档。类似地,我计算BM25分数,并将BM25分数最高的排在第一位,然后得到top50相似的文档。
然而,对于TF-IDF和BM25,结果都不是很好。
(数据集为label。测试数据集大小为1400个文档):
For example in the testing dataset judgment
the queryID=1
the relevant document ID is : 19.txt, 25.txt, 35.txt, 38.txt,133.txt,45.txt
...
在我创建的搜索系统中