2016-11-29 6 views
-2

私はこの問題で多くの時間を無駄にしているelasticsearchを使用して問題がある場合は、私を助けることができるかもしれません。Elasticsearch同義語とカテゴリー別にブースト

は私が持っている製品の多くのインデックスと私は、この検索で​​いくつかのカテゴリに基づいてブーストを設定します。

{ 
    "from": 1, 
    "size": 10 
    "query": { 
     "bool": { 
      'must': { 
       'match': { 
        'NAME': { 
         "query": "tv", 
         "operator": "and" 
        } 
       }, 
      }, 
      "should": { 
       "query_string": { 
        "query": 'category: 23', 
        "boost": 2 
       } 
      } 
     } 
} 

この作品の罰金、および結果のスコアリングは、これらのカテゴリのために変更されました。

今、私たちは、検索の同義語を紹介したいと私たちは、このメソッドを使用してelasticsearchでアナライザとしてsynoynymsを設定します。

"analysis": { 
    "analyzer": { 
     "synonym": { 
       "tokenizer": "whitespace", 
       "filter": ["lowercase", "asciifolding", "synonym_filter"] 
     } 
    }, 
    "filter": { 
     "synonym_filter": { 
      "type": "synonym", 
      "language": "spanish", 
      "synonyms": [ 
       "tv, television, tdt" 
      ] 
     } 
    } 
} 

私たちは、新しいアナライザと、この作品の罰金を使用するクエリを変更します

{ 
    "from": 1, 
    "size": 10 
    'query': { 
     'bool': { 
      'must': { 
       'match': { 
        'NAME': { 
         "query": "television", 
         "operator": "and", 
         "analyzer": "synonym" 
        } 
       } 
      } 
     } 
    } 
} 

しかし、我々は、このクエリに

{ 
    "from": 1, 
    "size": 10 
    'query': { 
     'bool': { 
      'must': { 
       'match': { 
        'NAME': { 
         "query": "television", 
         "operator": "and", 
         "analyzer" => "synonym" 
        } 
       }, 
      }, 
      "should": { 
       "query_string": { 
        "query": 'category: 23', 
        "boost" => 2 
       } 
      } 
     } 
    } 
} 
を変えるdoesntの結果をブーストを適用しようとすると、 210

誰かが私を助けることができますか?

よろしくお願いいたします。

+0

カスタムアナライザーを使用していますか? – Kulasangar

答えて

0

インデックスBoost -ingは、5.0の新しいバージョンでは廃止されました。ここでは、field mapping boostが利用可能です。あなたはそれを知っていると思います。

インデックス時間の延長は推奨されていません。

それがインデックス化しながら、昇圧フィールドレベルだ場合、クエリは次のようにすべきではない:それはケースではありません場合は、analyzerであるべき

"should": { 
       "query_string": { 
        "query": 'category: 23', 
        "boost": 2 
       } 
      } 

PUT /index 
{ 
    "settings": { 
     "analysis": { 
      "analyzer": {     
      } 
     } 
    } 
} 

could be helpful:あなたはsettingsタグ内analysisを持つべきではありません。

+0

こんにちは、私はあなたが間違っていると思います。インデックス昇圧はelasticsearch 5.0の昇圧クエリーに変更されました: https://www.elastic.co/guide/en/elasticsearch/reference/5.0/index-boost.html 実際には、同義語のないブーストの操作は正確で100%満足です 一方、弾性5では、公式の文書を指定するので、設定なしでインデックスのパラメータの更新が行われます https: //www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html –

+0

@JuanjoAguilellaMarésおっとありがとう:)私は答えを誤って書きました。私の答えの後半で述べた設定作業の中にあなたの分析を含めましたか? – Kulasangar

+0

入力した[リンク](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html)には、PUT url(localhost:9200/myindex/_settings )は、設定を含める必要がありますか?あなたがそのようにしているなら、それはうまくいくはずです。 – Kulasangar

関連する問題