gpt4 book ai didi

elasticsearch - Elasticsearch适用于少用词的文档

转载 作者:行者123 更新时间:2023-12-03 01:32:11 26 4
gpt4 key购买 nike

我了解Lucene / Elastisearch搜索的基本概念,它是通过对从文档中文本中解析出的单词建立的反向索引来实现的。
尝试找出Lucene / ElasticSearch是否适合以下情况,因为在文档中没有太多要解析的“单词”,因此无法对其进行反向索引。
在成千上万的学生中,每个学生可以选择参加一小部分测试(目前,学生可以选择一千种不同的测试),每个测试可能包含100个问题。我们想通过以下文件跟踪学生的表现

{
"studentId": <a number>,
"testId": <a number, ranging from 1 to 1000>,
"results": [
"R", "W", "N", ....
]
}
对于每个学生和他/她所参加的每项测试,测试中每100个问题的结果。结果可能是“R”(右),“W”(错误),“N”(跳过)。我们允许学生重新测试他/她跳过的问题,因此需要对文档进行更新。
我们可能需要运行的搜索包括以下内容,我们希望搜索在1或2秒内完成。
  • 给定一个学生子集(可能是100,000个学生,这个子集可以是任意的,因此不能提前加标签),并进行测试,找出测试中的每个问题,学生人数对的。
  • 给1000个测试中的每一个,给一部分学生提供测试通过的学生人数(一个学生通过测试意味着他(她)完成了测试中的所有问题)
    如果您有有助于搜索的建议,我们可以重新排列文档格式。
  • 最佳答案

    您可以使用ElasticSearch(ES),但这太过分了。为什么? ES的主要优势是反向索引(和解析),您在这里不需要。

    您在此需要的另一个优势是横向扩展( flex )。但是-有很多选择。您可以使用Facebook所做的MySQL生活自己实现分片(另请参阅here),或使用当今可用的许多其他选项之一:redis,Spark,BigQuery,Redshift,Cassandra(MongoDB?),Hadoop。

    关于elasticsearch - Elasticsearch适用于少用词的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55090749/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com