2016-05-21 16 views
1
私は

elasticsearchで検索の関連性の順序を改善する方法は?

  1. AppleのiPhone 6S
  2. AppleのiPhone 6
  3. AppleのiPhoneの6Sプラス
  4. AppleのiPhone
  5. AppleのiPhone 5S
  6. 以下のような値を持っている分野という名前のタイトルを持っています

ユーザーが検索する場合

アップルiPhoneそしてそれは

2> 1> 3> 4> 5

として順に来るべきです。 と

6S

AppleのiPhoneのためのユーザーの検索はそれが

どう

1> 3> 2> 4> 5

として順番に来るべき場合これはelasticsearchを使用して行うことができます。

私はmulti_searchとallを使用しています。しかし助けなし。

順序は正確に一致してから接頭辞が一致する必要があります。フレーズの後に3つの用語すべてを含むフィールド、次に2つの用語を含むフィールド、次に1つの用語を含むフィールドなどがあります。

ありがとうございました。

+0

このシナリオでは完全一致とフレーズの間にあなたの意見はどのような違いがありますか? –

+0

ユーザーがiphone 6を検索した場合も、注文は2> 1> 3> 4> 5となるはずです。 –

答えて

0

あなたはして試すことができます:あなたは「iphone」と「りんご」を持っているすべてのデータが必要な場合は、あなたが検索で単語ごとmatch_phrase_prefixを追加する必要があります

{ 
    "query": { 
    "bool":{ 
     "should":[ 
     {"match_phrase":{"title":"apple iphone 6s"}}, 
     {"match_phrase_prefix":{"title":"apple iphone 6s"}} 
     ] 
    } 
    } 
} 

+0

タイトルフィールドの解析の有無は問いませんか?マッピングは何でしょうか? –

0

あなたはあなたがそのようなクエリを持っている必要がありspecyfiedために、結果を取得したい場合:

POST /phone/phone/_search 
{ 
    "query": { 
     "bool": { 
     "should": [     
      { 
       "match_phrase_prefix": { 
        "text": "apple iphone 6" 
       } 
      }, 
      { 
       "match": { 
        "text": "apple iphone 6" 
       } 
      } 
     ] 
     } 
    } 
} 

検索クエリ文字列 "AppleのiPhone 6" と注文を結果:

  1. アップルiphone 6
  2. AppleのiPhoneの6Sプラス
  3. AppleのiPhone 6Sアップルiphone
  4. apple iphone 5s
0

私はこのように以下のようにしています。それは私が望む期待どおりの結果を私に与えている。

{ 
    "query": { 
     "filtered": { 
      "query": { 
       "bool": { 
        "should": [{ 
         "multi_match": { 
          "query": "apple iphone 6", 
          "fields": ["title"], 
          "operator": "and", 
          "boost": 1 
         } 
        }, { 
         "multi_match": { 
          "query": "apple iphone 6", 
          "fields": ["title"], 
          "type": "phrase_prefix", 
          "boost": 2 
         } 
        }, { 
         "multi_match": { 
          "query": "apple iphone 6", 
          "fields": ["title"], 
          "type": "phrase", 
          "boost": 3 
         } 
        }] 
       } 
      } 
     } 
    } 
} 
関連する問題