2013-07-15 2 views
0

나는 mongodb의 oplog에서 데이터를 검색하기 위해 elasticsearch 0.90.2와 elasticsearch-river-mongodb 1.7.0을 사용하고 있습니다. 컬렉션에 나는 인덱스를 만들려고 노력하고있다. 나는 수천 개의 구조화 된 레코드를 가지고있다. 그냥 'field1', 'field2', 'field3'... 'field10'...ElongSearch의 일부 필드 만 mongodb에서

'field1 '및'field2 '? 문자열 또는 날짜 개체로 중요합니까?

감사

나는 강 플러그인을 사용한 적이

답변

1

,하지만 난 당신이 매핑 또는 템플릿을 통해 필드에 따라 인덱스를 제어 할 수 있습니다 알고 한 가지. 각 필드에 대해 mapping 또는 template의 "index"속성을 analyze, not_analyzed, no의 세 가지 옵션으로 지정할 수 있습니다. 이것은 공식 문서입니다.

세트 으로 분석기를 사용하여 토큰으로 분해 된 후 인덱싱 및 검색 할 필드 분석. not_analyzed은 여전히 ​​검색 가능하지만 분석 프로세스를 거치거나 토큰으로 분류되지 않음을 의미합니다. 아니요은 검색 할 수 없음을 의미합니다 (개별 필드로, _all에 여전히 포함될 수 있음). 으로 설정하면은 include_in_all을 비활성화합니다. 분석 할 기본값.

필드를 검색 할 수있게하려면 "not_analyzed"로 이동하고, 그렇지 않으면 "no"로 이동하십시오. 필드 유형이 중요하지 않아야합니다.

다음은 공식 웹 사이트

{ 
    "tweet" : { 
     "properties" : { 
      "user" : {"type" : "string", "index" : "not_analyzed"}, 
      "message" : {"type" : "string", "null_value" : "na"}, 
      "postDate" : {"type" : "date"}, 
      "priority" : {"type" : "integer"}, 
      "rank" : {"type" : "float"} 
     } 
    } 
} 
+0

감사 Zhoutuo에서 매핑 예입니다! 귀하의 답변이 도움이되었습니다. 인덱스를 만든 다음 매핑을 만들고 그 인덱스에 mongodb 강을 연결했습니다. – remedix

관련 문제