1

用語の頻度があまり役に立たないような方法で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 を不適切に使用していませんか?

助けていただければ幸いです。

4

0 に答える 0