提升特殊类型文档的排名

时间:2014-01-31 20:25:19

标签: elasticsearch

我有一个包含两种类型文档的索引:DistrictStreet。我想提高District文件的排名。

没有script选项,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用custom_filters_score来提升与过滤器匹配的文档,您的过滤器可以是type - 过滤器。

以下是您可以使用的可运行示例:https://www.found.no/play/gist/8744808

#!/bin/bash

export ELASTICSEARCH_ENDPOINT="http://localhost:9200"

# Index documents
curl -XPOST "$ELASTICSEARCH_ENDPOINT/_bulk?refresh=true" -d '
{"index":{"_index":"play","_type":"district"}}
{"title":"there"}
{"index":{"_index":"play","_type":"street"}}
{"title":"there"}
'

# Do searches

curl -XPOST "$ELASTICSEARCH_ENDPOINT/_search?pretty" -d '
{
    "query": {
        "custom_filters_score": {
            "query": {
                "match": {
                    "title": {
                        "query": "there"
                    }
                }
            },
            "filters": [
                {
                    "boost": 2,
                    "filter": {
                        "type": {
                            "value": "district"
                        }
                    }
                }
            ]
        }
    }
}
'