Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch Elaticsearch是否适用于文字较少的文档_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Lucene - Fatal编程技术网 elasticsearch Elaticsearch是否适用于文字较少的文档,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch Elaticsearch是否适用于文字较少的文档,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch Elaticsearch是否适用于文字较少的文档

elasticsearch Elaticsearch是否适用于文字较少的文档,elasticsearch,lucene,elasticsearch,Lucene,我理解Lucene/Elastisearch搜索的基本概念,它是通过从文档中的文本解析出的单词建立反向索引 尝试找出Lucene/ElasticSearch是否适合以下场景,因为文档中没有太多“单词”需要解析,因此无法从中反转索引 有数百万学生,每个学生可以选择参加一小部分测试(目前学生可以选择上千种不同的测试),每个测试可能包含100个问题。我们希望通过以下文件跟踪学生的表现 { "studentId": <a number>, "te

我理解Lucene/Elastisearch搜索的基本概念,它是通过从文档中的文本解析出的单词建立反向索引

尝试找出Lucene/ElasticSearch是否适合以下场景,因为文档中没有太多“单词”需要解析,因此无法从中反转索引

有数百万学生,每个学生可以选择参加一小部分测试(目前学生可以选择上千种不同的测试),每个测试可能包含100个问题。我们希望通过以下文件跟踪学生的表现

{
    "studentId": <a number>,
    "testId": <a number, ranging from 1 to 1000>,
    "results": [
        "R", "W", "N", .... 
    ]
}
{
“学生身份”:,
“睾丸”:,
“结果”:[
“R”、“W”、“N”、。。。。
]
}
对于每个学生和他/她参加的每个测试,测试中100个问题的结果。结果可能是“R”(正确),“W”(错误),“N”(跳过)。我们允许学生重新测试他/她跳过的问题,因此需要更新文档

我们可能需要运行的搜索包括以下内容,我们希望搜索在1或2秒内完成

  • 给定一个学生子集(可能是100000个学生,这个子集可以是任意的,因此不能提前标记),并给定一个测试,找出测试中的每个问题,有多少学生做对了

  • 给出1000次测试中每个测试的学生子集,有多少学生通过了测试(通过测试的学生意味着他/她在测试中所有问题都做对了)

    如果您有帮助搜索的建议,我们可以重新安排文档格式


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


    这里您确实需要的另一个优势是向外扩展(弹性)。但是,还有很多选择。您可以使用Facebook提供的MySQL life为自己实现碎片(另请参阅),或者使用当今许多其他可用选项之一:redis、Spark、BigQuery、Redshift、Cassandra、(MongoDB?)和Hadoop。

    使用elasticsearch,您可以更方便地查找您现在知道的ID的内容,因此请尝试匹配一些内容。但正如我理解你的观点,你已经有了你正在寻找的文档的ID,所以没有真正的搜索,因为你已经知道在哪里可以找到。因此,我认为elasticsearch有点过火,对于某些postgres或smt,您的搜索效果更好。@RichieK SQL db在表的潜在大小和我们需要执行的搜索类型方面有自己的问题。我只是把它贴在这里,看看使用Lucene/ElasticSearch是否可行。如果它能解决这个问题,过度杀戮是可以的:-)使用MySQL进行切分是一个有趣的想法。然而,如果我们将来添加更多字段,ElasticSearch似乎具有灵活性和扩展性。我把它贴在这里,看看它是否可行,并征求一些经验。谢谢。ElasticSearch并不是很有弹性,不像Spark。为什么?您可以添加节点,但必须等待漫长的重新平衡。顺便说一句,你是否已经有10万名学生,或者这是为了未来的增长?漫长的再平衡并不好,但也不会取消资格。我们必须假设从第一天开始有1百万名学生。