2017-01-23 6 views
1

유형에 따라 boost 동일한 필드의 검색 결과가 나타납니다?elasticsearch의 같은 필드의 관련성을 입력하십시오.

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

그러나 그것을 :

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

그러나

내가 제목이 덜 중요 할 다른 문서, 그래서 유형을 앞에하려고 :

내 기본 증폭 뭔가처럼 전혀 부스트하지 않습니다. 최후의 수단으로 나는 Funcsion/Script Score 부를 사용하고 싶습니다.

예를 들어, 문서에 단지 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