我正在寻找符合以下要求的数据库/搜索引擎:
Big Plus但不是必须的:
请注意,该软件在内部运行,并且没有DevOps来维护过于复杂的环境(如Spark)。
示例
条目:
{"id": 1, "name": "Bob", "number_of_siblings": 2, "birthday": 5.5.2000, "hobbies" ["painting", "reading"], "education": {"school": "schoolName", "subject: {"name": "math", "level" : 2}}}}
{"id": 2, "name": "Jane", "number_of_siblings": 2, "birthday": 7.6.2001, "hobbies" ["painting", "reading"], "education": {"school": "schoolName1", "subject: {"name": "math", "level" : 3}}}}
{"id": 3, "name": "Dana", "number_of_siblings": 1, "birthday": 7.6.1995, "hobbies" ["Swimming", "Jumping rope"], "education": {"school": "schoolName2", "subject: {"name": "English", "level" : 1}}}
{"id": 4, "name": "Alex", "number_of_siblings": 1, "birthday": 7.6.1997, "hobbies" ["Swimming", "Jumping rope"], "education": {"school": "schoolName1", "subject: {"name": "math", "level" : 1}}}
{"id": 5, "name": "Natalie", "number_of_siblings": 1, "birthday": 7.6.1991, "hobbies" ["Swimming", "Jumping rope", "piano"], "education": {"school": "schoolName1", "subject: {"name": "math", "level" : 1}}}
可能的查询:
结果信息桶
Bucket 1:
Bucket 2:
Bucket 3:
在结果中,我想在每个桶中获取事件,而不仅仅是摘要。 (对于存储桶1,获取条目1和2 - 我上面写的完整条目)
到目前为止,弹性搜索满足了大多数要求(除了“大加但不是必须”的要求),尽管我还没有对数百万条目进行性能测试。 在弹性搜索中,我使用桶聚合(标记为“min_doc_count”:2)和顶部命中聚合的子桶,并使用大“size”参数来获取所有命中。
我想知道这是否足够有效还是有更好的方法。
谢谢。