2016-10-20 2 views
1

크기가 100인데 쿼리 시간에 검색되지 않는 _score가 적은 문서가 있습니다. 이 문서를 상위 25 개 결과에서 사용할 수 있도록해야합니다. 이것을 달성하는 방법? _score를 수동으로 늘릴 수있는 옵션이 있습니까?탄성 검색 - 탄성 검색 문서에서 _score를 늘리는 방법

+0

이 단지와 "부스트"필드 또는 유사한를 추가 : - N 동적 스크립트에 대한 https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-scripting.html#enable-dynamic-scripting 함수의 기능 점수 및 유형에 대한 자세한 inromation를 들어

(당신은 당신이 사용하는 탄성의 버전을 선택할 수 있습니다) 숫자 값 및 순서는 쿼리에서 첫 번째로 (그리고 두 번째로) 나타냅니다. –

+0

당신은 수동으로 1 개의 문서를 향상시키고 싶습니까? 당신이 해결하려고하는 문제가 아니라고 확신합니다. – Mysterion

+0

정수 필드를 기반으로 문서를 향상시켜야합니다. 내가 max_doc 필드가 10, 100이면 100이 먼저오고, – user3351014

답변

1

I 당신은 일부 기능에 따라 점수를 높일 수 function_score를 사용할 수

트릭을 할 수있는 가능한 방법 중 하나를 설명합니다은 :

function_score 쿼리는 점수 기능의 몇 가지 유형을 제공합니다 .

script_score

무게

random_score

field_value_factor

붕괴 기능 : 가우스, 선형, 특급

예, 그것은을 강화하기 위해 field_value_factor를 사용합니다 에스

{ 
    "query": { 
    "function_score": { 
     "query": { 
     "match_all": {} 
     }, 
     "script_score": { 
     "script": "_score * doc['popularity'].value" 
     }, 
     "boost_mode": "multiply" 
    } 
    } 
} 

당신이 라인은 탄성의 버전에 따라 귀하의 YML 설정 파일을 변경해야이 동적 득점을 활성화하려면 : 점수를 곱하여 코어

이 중 하나를 (적어도 그것은 2.4의 방법) 것

script.inline: true 
script.indexed: true 

이나 뭐 같은 자세한 informatio를 들어

script.disable_dynamic: false 

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html