2013-06-24 4 views
2

ElasticSearch를 사용하여 특정 문자열을 포함하는 모든 레코드를 찾으려고합니다. 이것에 대한 일치 쿼리를 사용하고 있으며 정상적으로 작동합니다.ElasticSearch로 일치 쿼리 정렬

이제 특정 필드를 기반으로 결과를 정렬하려고합니다. 이 작업을 시도 할 때 매우 예상치 못한 결과가 발생하며 기록에 초기 검색어가 포함되지 않습니다.

{ 
"query": 
{ 
    "match": {"_all": "some_search_string"} 
}, 
"sort": [ 
{ 
    "some_field": { 
     "order": "asc" 
     } 
} 
] } 

내가 잘못 여기서 뭔가를하고 있습니까 다음과 같이

내 요청이 구성되어?

답변

1

문자열 필드를 정렬하려면 매핑에 분석되지 않은 버전의 필드가 있어야합니다. the multi_field mapping type을 사용하여이 작업을 수행하는 방법을 설명하는 Here's a simple blog post I found

+2

고마워요,하지만 그게 문제라고 생각하지 않습니다. 일치 검색어를 사용하는 대신 특정 검색어를 검색하면 분류가 올바르게 작동합니다. 예를 들어, 내가 시도한 경우 : "검색어": { "용어": {some_field ":"some_Search_String "} }, 정렬이 잘됩니다. 특별히 일치하는 정렬 기능을 사용하는 동안 문제가 있습니까? 도움을 주셔서 감사합니다. –