![]() |
1
3
你从Elasticsearch得到了奇怪的结果,因为一些统计数据是跨单个碎片计算的,而不是跨整个索引。通常这很好,因为大多数文档集合都很大,但当一个碎片中只有少数文档时,这些统计数据就没有多大意义。在你的例子中,我认为有问题的统计数据是avgFieldLength,它有助于tfNorm分数。尝试仅使用一个碎片创建新索引:
然后查询:
如果您想了解排名情况,可以使用解释:
尽管如此,你不应该期望postgres的搜索排名与elasticsearch的排名相匹配。Elasticsearch使用归一化tf idf分数,postgres不考虑文档频率或文档长度。有关更多信息,请参阅此问题: Does PostgreSQL use tf-idf? |
![]() |
kashif · Searchkick手动删除特定记录索引 10 年前 |