elasticsearchの高度なスコアリングモジュールを使用してインデックスレベルのスコアリング属性にアクセスし、用語頻度に基づいてドキュメントにスコアを付けることができます。
Official documentation。
次
グルーヴィー
POST index_name1/test_type
{
"title" : "harley harley harley",
"nested_one" : [{
"some_id" : 78
},
{
"some_id" : 80
},{
"some_id" : 100
}],
"nested_two" : [{
"some_id" : 79
},
{
"some_id" : 80
},{
"some_id" : 101
}]
}
POST index_name1/test_type
{
"title" : "harley harley",
"nested_one" : [{
"some_id" : 78
},
{
"some_id" : 80
},{
"some_id" : 100
}],
"nested_two" : [{
"some_id" : 79
},
{
"some_id" : 80
},{
"some_id" : 101
}]
}
POST index_name1/_search
{
"query": {"function_score": {
"query": {"match_all": {}},
"functions": [
{"script_score": {
"script": "_index['title']['harley'].tf()"
}}
]
}}
}
をES 2.4.1についてelasticsearch
に周波数に基づいてスコアをfunction scoreスクリプトスコアクエリ内で使用し、デフォルトのスクリプト言語することができます上記のクエリの応答であります。
{
"took": 173,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 3,
"hits": [
{
"_index": "index_name1",
"_type": "test_type",
"_id": "AVn9aDOUKkYhaW9Iz5wL",
"_score": 3,
"_source": {
"title": "harley harley harley",
"nested_one": [
{
"some_id": 78
},
{
"some_id": 80
},
{
"some_id": 100
}
],
"nested_two": [
{
"some_id": 79
},
{
"some_id": 80
},
{
"some_id": 101
}
]
}
},
{
"_index": "index_name1",
"_type": "test_type",
"_id": "AVn9aBQGKkYhaW9Iz5wJ",
"_score": 2,
"_source": {
"title": "harley harley",
"nested_one": [
{
"some_id": 78
},
{
"some_id": 80
},
{
"some_id": 100
}
],
"nested_two": [
{
"some_id": 79
},
{
"some_id": 80
},
{
"some_id": 101
}
]
}
},
{
"_index": "index_name1",
"_type": "test_type",
"_id": "AVn9aBhlKkYhaW9Iz5wK",
"_score": 2,
"_source": {
"title": "harley harley",
"nested_one": [
{
"some_id": 78
},
{
"some_id": 80
},
{
"some_id": 100
}
],
"nested_two": [
{
"some_id": 79
},
{
"some_id": 80
},
{
"some_id": 101
}
]
}
}
]
}
}
希望します。