2017-11-07 16 views
1

저는 혼란 스럽습니다. 내가 좋아하는 내 탄성 검색 문서에 CATEGORY_ID 있습니다범위에서 문서가 올바르게 필터링되지 않습니다.

이제 탄성 검색에서 다음과 같이 I는 카테고리 ID의 범위를 기반으로 검색 할 때
[ 
{ 
"id": "80029", 
"categoryId": "43227", 
"channelId": "54322", 
"channelName": "xxxxx2222", 

:

{ 
"query": { 
    "range": { 
    "category_id": { 
    "lt": 1000032270000 
    } 
    } 
} 
} 

나는 다시 아무 것도 얻을 그러나 그것은 명백하다 1000032270000가 43227보다 크고 기록을 다시 얻을 것으로 예상됩니다. 더 놀랍게도 나는 1000032270000을 9000032270000으로 바꾼다. 나는 결과를 얻는다. 그래서 내 문제는 무엇입니까? 내 문서를 올바르게 필터링하는 방법은 무엇입니까? (나는 모든 문서가 4000보다 크고 10000보다 작아서 sth를 찾고있다.)

+0

매핑 결과를 표시 할 수 있습니까? GET/{YOUR_INDEX}/_ mapping "1000032270000"이 알파벳순으로 값이 "9000032270000"보다 작고 알파벳순으로 – Miek

+0

이니? { "_index" "이야기", "_type": "문자열", "_id": "80061", "_version을": 1, "_score을": 1, "_source": { "ID": "80061 ", "category_id ":"43227 ", "channel_id ":"54322 " } } –

+0

kibana에서 복사했습니다. –

답변

1

이것은 문자열 매핑 때문이라고 가정한다. 이것이 사실이 아닌 경우 나는 편집 할 것이다.

"category_id"에 대한 매핑이 숫자로 설정되어 있는지 확인하십시오. 이 필드의 매핑으로 넣어보십시오 (문서를 가져 오기 전에 매핑을 사용하여 인덱스를 다시 만들거나 다른 인덱스로 다시 매핑해야 함)

PUT {YOUR_INDEX} 
{ 
    "mappings" :{ 
    "{YOUR_TYPE}":{ 
     "properties": { 
     "category_id": { 
      "type": "long" 
     } 
     } 
    } 
    } 
} 
+0

탄성 검색에 삽입하는 모든 필드에 대해 감사합니다. 유형을 추가해야합니까? –

+0

이렇게하면 인덱스 필드가 10 개인 경우에도 인덱스 열이 아닌 경우에도 유형을 10 번 지정해야합니다. –

+0

나는 탄성 검색에 내 문서를 추가 할 때 이것을 사용하고 있습니다. 다른 필드에 매핑을 추가하는 방법을 알려주십시오. –