2012-05-14 3 views
2

SQL 데이터 테이블을로드하고 있으며 다양한 요구 사항에 따라 결과를 얻으려고합니다. rangequery에 문제가 있습니다. 내가 이것을 쓰고있는 경우 :은 elasticsearch에 문자열로 저장된 숫자입니까?

$ curl -X GET 'http://localhost:9200/sample/new/_search?pretty=true' -d ' 
{ query:{range:{price_incl_tax:{gte:1000,lte:1500}}} }' 

price_incl_tax=140.0000뿐만 아니라 13500.0000는 오는 결과.

답변

3

귀하의 경우 price_incl_tax은 문자열로 저장되는 것으로 보입니다. price_incl_tax 필드가 처음에 숫자 대신 문자열로 추가 되었기 때문에 발생했을 수 있습니다. 당신은 Elasticsearch 사용하면 인덱스 또는 형식을 만드는 동안 mapping를 지정하여 개별 필드 유형을 제어 할 수 있습니다

$ curl -X GET 'http://localhost:9200/sample/new/_mapping?pretty=true'

를 실행하여 인덱스에 필드 유형을 확인할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 이것은 정확히 문제였습니다. – Vipul

+0

매핑을 업데이트 할 수 있는지 또는 다시 매핑해야하는지 다시 알고 싶습니다. – Vipul

+0

일반적으로 새 필드는 기존 매핑에만 추가 할 수 있습니다. 기존 필드의 필드 유형은 변경할 수 없습니다. 따라서 귀하의 경우 색인을 다시 만들어야합니다. – imotov

관련 문제