2014-03-07 2 views
0

필드에 다음 Java 데이터 유형이있는 데이터가 있습니다.인덱스 맵 값

이러한 종류의 데이터를 인덱싱하는 가장 좋은 방법은 무엇입니까?

감사합니다,

field_a map<string,string> 

field b map<string,array<string>> 

그것을

+1

데이터를 어떻게 검색 하시겠습니까? document1이 field_a에 map1을 가지고 있고 document2가 field_a에 map2를 가지고 있다고 가정 할 때, 어떻게 문서를 가져올 계획입니까? – Rocky

+0

나는 모든 검색 패턴에 대해 생각해 보지 않았지만, 과거에는이 문제가있는 모든 고객을 찾을 수 있다고 생각할 수 있습니다. 문제 세부 정보는지도에 저장되며 고객은 문서의 고유 ID입니다. 데이터를 병합 한 다음 색인을 생성 하시겠습니까? 또는 다른 방법 – user2230605

+0

내가 수집 한 것으로부터이 경우 solr 사용을 권장하지 않습니다. 문서 저장소 NoSql 데이터 스토어 인 MongoDB를 선호하며 맵에서 JSON으로 변환하여 유지할 수 있습니다. ElasticSearch에서도 동일한 작업을 수행 할 수 있습니다. 귀하의 요구 사항에 대해 잘 모르겠습니다. 더 자세한 정보를 공유 할 수 있다면 더 좋은 추천을 드릴 수 있습니다. – Rocky

답변

0

현재 SOLR지도 유형 필드 유형을 지원하지 않습니다에 대한의 schema.xml을 정의하는 방법. 따라서 맵 내부의 특정 키를 쿼리하여 값을 검색 할 수 없습니다. 나는 당신이 도움이 될지 모르지만, 솔레에게 이것을 지킬 수있는 방법을 제안 할 수 있습니다.

지도를 json 형식의 문자열로 필드에 저장할 수 있습니다. 예를 들어, document1은 field_a에 map1을 가지고 document2에는 field_a에 map2가 있습니다. 이제 각지도와 관련된 일부 데이터를 해당 문서에 보관합니다. 쿼리 할 때 맵 대신 해당 필드를 쿼리하십시오. 그런 다음 검색 결과에서 json 형식의 문자열을 검색하면 응용 프로그램에서 파싱하고 값을 가져옵니다.

희망이 도움이 될 것입니다.