2013-05-21 3 views
1

Google 시스템에 사용자가 있으며 닉네임에는 쉼표가 포함될 수 있습니다. 쉼표는 Elasticsearch가 별도의 값으로 사용하는 특수 문자입니다. 나는 다음과 같은 사용자가 저장 한 : 나는 쿼리 nickname:John를 실행하면Elasticsearch에 쉼표가있는 파일로 검색

{ 
    "nickname" : "John" 
} 

{ 
    "nickname" : "John,2" 
} 

내가 예상되지 않는 것을 두 문서를 얻을.

내가 무엇이 필요한지 잘 모르겠습니다. 당신의 2 사용자가이 조건을 색인 이유는 토크 나이, 분석기 ... 사전에

감사

+0

당신 자신에게 물어 또 다른 질문 : 당신은'john'가'John'을 일치시킬 않는 약

더 많은 정보? – javanna

답변

2

문자열 필드가 ElasticSearch에서 기본적으로 분석을 의미, 그건 : "존"과 "2"와 일치 nickname:John 쿼리

닉네임을 분석하지 않으려면 (단일 문자열로 처리)이 필드의 매핑을 명시 적으로 "키워드"로 설정해야합니다. http://www.elasticsearch.org/guide/reference/index-modules/analysis/keyword-analyzer/ 및 매핑 API에 대한 : http://www.elasticsearch.org/guide/reference/api/admin-indices-put-mapping/

+0

고마워요! 이것이 제가 찾고 있던 것입니다. 이제 MongoDB 강을 다루어야합니다. – Quaiks

관련 문제