2016-09-05 3 views
0

으로 색인을 정렬하여 색인 설정이나 매핑의 변경을 통해 알파벳 순으로 정렬되도록 선택할 수 있습니까?ElasticSearch는 알파벳순으로 스코어

"정렬"쿼리가 있지만 그 점수를 제거하고 단어의 사전 순 정렬 외에도 점수를 고려하고 싶습니다. 결과 "A"& "Z"2의 점수를 가지고 있고, "C"는 하나의 점수가있는 경우

예를 들어 나는 순서이 원하는 :

Z

C

이 가능합니까?

이 내 현재 인덱스 설정 및 매핑 :

{ 
    "users": { 
     "settings": { 
     "index": { 
      "analysis": { 
       "filter": { 
        "shingle_filter": { 
        "max_shingle_size": "2", 
        "min_shingle_size": "2", 
        "output_unigrams": "true", 
        "type": "shingle" 
        }, 
        "edgeNGram_filter": { 
        "type": "nGram", 
        "min_gram": "1", 
        "max_gram": "20" 
        } 
       }, 
       "analyzer": { 
        "autocomplete_query_analyzer": { 
        "filter": [ 
         "standard", 
         "asciifolding", 
         "lowercase" 
        ], 
        "tokenizer": "standard" 
        }, 
        "autocomplete_index_analyzer": { 
        "filter": [ 
         "standard", 
         "asciifolding", 
         "lowercase", 
         "shingle_filter", 
         "edgeNGram_filter" 
        ], 
        "tokenizer": "standard" 
        } 
       } 
      }, 
      "number_of_shards": "1", 
      "number_of_replicas": "1" 
     } 
     } 
    } 
} 

{ 
    "users": { 
     "mappings": { 
     "data": { 
      "properties": { 
       "name": { 
        "type": "string", 
        "analyzer": "autocomplete_index_analyzer", 
        "search_analyzer": "autocomplete_query_analyzer" 
       } 
      } 
     } 
     } 
    } 
} 

그 결과가 자동으로 알파벳 순으로 정렬되도록 인덱스 설정에 무언가를 추가 할 수 있습니까?

답변

4

ElasticSearch의 설명서에있는 example_score을 비롯한 여러 값으로 정렬 할 수 있어야한다는 것을 보여줍니다. 다음과 같이 시도하십시오 :

"sort": [ 
    { "date": { "order": "desc" }}, 
    { "_score": { "order": "desc" }} 
] 

어떤 필드를 정렬할지 모르므로 필요에 따라 위의 예를 조정해야합니다.

이게 작동하는지 알려주세요. :)

+0

이것이 저에게 효과적입니다. 감사! – offwhitelotus

+0

다음과 같이 점수가 정렬에 암시 적이라는 가정이 있습니다. 즉, 정렬을 통해 채점하는 것입니다. – offwhitelotus