2017-01-23 3 views
1

タイプによっては同じフィールド上にboostの検索結果はありますか?elasticsearchの同じフィールドに関連するタイプ

後押し私の基本のようなものです:

GET _search 
{ 
    "query": { 
     "simple_query_string": { 
     "query": "mangan", 
     "fields":["_all", "title^6"] 
     } 
    } 
} 

しかし、いくつかの他の文書のために、私はタイトルはそれほど重要になりたいので、私は種類を前に付けてみました:

GET _search 
{ 
    "query": { 
     "simple_query_string": { 
     "query": "mangan", 
     "fields":[ 
      "_all", 
      "DocumentationPage.title^6", 
      "DocumentationPage.title^6"] 
     } 
    } 
} 

しかし、それ全くブーストしません。最後の手段として私はFuncsion/Script Score buを使用して、それを避けたいと考えています。

たとえば、文書にはちょうどtitleフィールドが含まれているとします。

答えて

1

これを実現する簡単な方法は、OP内のクエリをdis-max queryとして書き直すことです。 elasticsearch 5.xの

例:

{ 
    "query": { 
     "dis_max": { 
     "queries": [ 
      { 
       "simple_query_string": { 
        "fields": [ 
        "_all" 
        ], 
        "query": "mangan" 
       } 
      }, 
      { 
       "bool": { 
        "filter": { 
        "type": { 
         "value": "DocumentationPage" 
        } 
        }, 
        "must": [ 
        { 
         "simple_query_string": { 
          "fields": [ 
           "title^6" 
          ], 
          "query": "mangan" 
         } 
        } 
        ] 
       } 
      } 
     ] 
     } 
    } 
} 
+0

はありがとう、期待通りに動作します!この手法は、さまざまなタイプのドキュメントをさまざまな条件でフィルタリングする場合にも役立つと考えられます。 – PeterM

関連する問題