Elasticsearch - 各国的相似性

时间:2014-02-25 14:13:14

标签: solr elasticsearch similarity relevance scoring

我有一个文档,其中包含许多字段,其中一个是country。有许多文档具有相同的country

当我执行match queryfuzzy搜索country并查询Belgium时,会返回与Belgium匹配的文档列表国家,但他们都有不同的分数。我认为这是因为tdidf相似性以及belgium术语在其他文档领域的存在等。

我想在这种情况下返回相同的分数。我应该使用什么相似之处?

更新

我接下来有6份文件:

{country:"Austria", title: "house"}
{country:"Austria", title: "Austria village"}
{country: "Germany", title: "deutch hotel" }
{country:"Austria", title: ""}
{country: "USA", title: "Usa hotel" }
{country: "USA", title: "Usa another hotel" }

当我对国家/地区执行匹配查询时:

{
   query: {match: {country: "Austria"}}
}

我接下来的结果:

[ {
  "_index" : "elasticdemo_docs",
  "_type" : "doc",
  "_id" : "1",
  "_score" : 1.0, "_source" : {country:"Austria", title: "Austria village"}
}, {
  "_index" : "elasticdemo_docs",
  "_type" : "doc",
  "_id" : "2",
  "_score" : 0.30685282, "_source" : {country:"Austria", title: "house"}
}, {
  "_index" : "elasticdemo_docs",
  "_type" : "doc",
  "_id" : "3",
  "_score" : 0.30685282, "_source" : {country:"Austria", title: ""}
} ]

我希望所有3个文档都收到相同的_score,因为它们都有Austria个国家/地区。我应该使用什么相似之处?

1 个答案:

答案 0 :(得分:4)

似乎我发现了问题 - 它与以下内容有关: http://www.elasticsearch.org/blog/understanding-query-then-fetch-vs-dfs-query-then-fetch/

使用dfs_query_then_fetch搜索类型后,我得到了预期的结果。