![]() |
1
3
你从Elasticsearch得到了奇怪的结果,因为一些统计数据是跨单个碎片计算的,而不是跨整个索引。通常这很好,因为大多数文档集合都很大,但当一个碎片中只有少数文档时,这些统计数据就没有多大意义。在你的例子中,我认为有问题的统计数据是avgFieldLength,它有助于tfNorm分数。尝试仅使用一个碎片创建新索引:
然后查询:
如果您想了解排名情况,可以使用解释:
尽管如此,你不应该期望postgres的搜索排名与elasticsearch的排名相匹配。Elasticsearch使用归一化tf idf分数,postgres不考虑文档频率或文档长度。有关更多信息,请参阅此问题: Does PostgreSQL use tf-idf? |
![]() |
AVEbrahimi · SQLITE FTS匹配中文本出现的真实次数 7 年前 |
![]() |
Bob · 在何处存储搜索索引的数据? 7 年前 |
![]() |
Fabio B. · 如何在Solr中排序/增强产品搜索结果 7 年前 |
![]() |
Santhosh · Django全文搜索:表示不存在uncent 7 年前 |
![]() |
IvanKaminskyi · Algolia搜索关键字 7 年前 |
![]() |
Oleg · 查询集群中单个ElasticSearch节点 7 年前 |