用語の頻度があまり役に立たないような方法でElasticsearchを使用しようとしています。Elasticsearch 0.19 を実行しています。いくつかの特定のフィールドに対して「omit_term_freq_and_positions」を true に設定しようとしましたが、何の影響もないようです。
tags: {
type: "string",
search_analyzer : "snowball",
index_analyzer : "snowball",
boost : 4,
omit_term_freq_and_positions : "true",
}
Explain=true の場合、検索結果はまだ頻度を考慮しているようです。
これが私が実行しているサンプルクエリです:
{
"from": 0,
"size": 15,
"query": {
"filtered": {
"query": {
"multi_match": {
"query": "italian",
"fields": [
"name",
"tags"
]
}
},
"filter": {
"geo_distance": {
"distance": "5km",
"location": {
"lat": 40.76405282025,
"lon": -73.972994269042
}
}
}
}
}
}
上記のクエリからの最初のヒット:
"hits": [
{
"_shard": 0,
"_node": "TtX90CDASk2wsHErdEe7BQ",
"_index": "businesses",
"_type": "business",
"_id": "25385",
"_score": 20.388601,
"_source": {
"_boost": "1.5",
"bid": "25385",
"name": "Donatella",
"address": "184 8th Ave",
"city": "New York",
"state": "NY",
"zip": "10011",
"tags": "Restaurant,Italian",
"location": [
{
"lat": 40.743015,
"lon": -73.99992
}
]
},
"_explanation": {
"value": 20.3886,
"description": "max of:",
"details": [
{
"value": 20.3886,
"description": "weight(tags:italian in 14282), product of:",
"details": [
{
"value": 0.7244212,
"description": "queryWeight(tags:italian), product of:",
"details": [
{
"value": 5.6289353,
"description": "idf(docFreq=399, maxDocs=40962)"
},
{
"value": 0.12869595,
"description": "queryNorm"
}
]
},
{
"value": 28.144676,
"description": "fieldWeight(tags:italian in 14282), product of:",
"details": [
{
"value": 1,
"description": "tf(termFreq(tags:italian)=1)"
},
{
"value": 5.6289353,
"description": "idf(docFreq=399, maxDocs=40962)"
},
{
"value": 5,
"description": "fieldNorm(field=tags, doc=14282)"
}
]
}
]
}
]
}
},
検索とインデックス作成で用語の頻度を無視するために必要な特別なクエリの種類はありますか? omit_term_freq_and_positions を不適切に使用していませんか?
助けていただければ幸いです。