이 질문은 실험 및 구현에 대한 세부 사항을 파고 들기 전에 아키텍처를 선택하는 것에 관한 것입니다. 그것은 elasticsearch v.s의 적합성, 확장 성 및 성능 측면에 관한 것입니다. 다소 특정한 목적을 위해 MongoDB.elasticsearch v.s. 필터링 응용 프로그램 용 MongoDB
필드와 값이있는 데이터 개체를 가설 적으로 저장하고 해당 개체 본문을 쿼리 할 수 있습니다. 따라서 임의로 선택된 필드에 따라 객체의 하위 집합을 필터링하면 아마도 둘 다 적합합니다.
내 응용 프로그램은 기준에 따라 개체를 선택합니다. 그것은 하나 이상의 필드로 동시에 필터링하고 다른 방식으로 개체를 선택합니다. 쿼리 필터링 기준은 일반적으로 1 ~ 5 개 필드를 포함하며 경우에 따라 더 많을 수 있습니다. 반면에 필터로 선택된 필드는 훨씬 더 많은 필드의 부분 집합이됩니다. 이미 약 20 개의 필드 이름이 있으며, 각 쿼리는 전체 20 개의 필드 중 일부 필드로 개체를 필터링하려고 시도합니다 (전체 필드 이름이 20 개 미만이거나 20 개 이상일 수 있음). 필드를 모든 이산 쿼리에서 필터로 사용되는 필드로 변환). 필터링은 필드 값뿐만 아니라 선택된 필드의 존재에 의해 이루어질 수있다. 필드 A가있는 오브젝트를 필터링하고 필드 B는 x와 y 사이에 있고 필드 C는 w와 같습니다.
내 응용 프로그램에서는 이러한 종류의 필터링을 지속적으로 수행하는 반면, 어떤 필드가 언제든지 필터링에 사용된다는 측면에서 아무런 상수가 없거나 거의 없을 것입니다. 아마도 elasticsearch 인덱스를 정의 할 필요가 있을지 모르지만, 인덱스가 없어도 MongoDB의 속도와 비슷한 수준 일 수 있습니다.
데이터가 저장소에 들어갈 때마다 개체에 대한 특별한 세부 정보는 없습니다. 삽입 된 개체는 거의 변경되지 않습니다. 아마도 오래된 객체를 삭제해야 할 것입니다. 두 데이터 저장소 지원이 내부적으로 또는 응용 프로그램에서 작성한 쿼리로 데이터 삭제를 만료한다고 가정하고 싶습니다. (빈번하지 않게 특정 쿼리에 적합한 객체도 삭제해야합니다.)
당신은 어떻게 생각하십니까? 그리고이 부분을 실험 해 보셨습니까?
저는이 두 가지 데이터 저장소 각각의 성능과 확장성에 관심이 있습니다. 이것은 건축 학적 문제의 일종이며, 상점 별 옵션이나 쿼리 스톤 스톤에 대한 세부 사항은 잘 설계된 것으로 만들어야합니다. 완전히 고려한 제안을 시연하는 것으로 환영합니다.
감사합니다.
나는 이것이 투표를 계속하는 이유에 대해 잘 모르겠다. 오랜 시간이 지난 후에 그러한 저명한 옵션입니까? – matanster