我有大约20,000份文件存储在弹性搜索中,每个大约200 in。
我有一个搜索,有733次点击总数,我运行大约50毫秒完成时,返回10个结果。
如果我将大小设置为1000,使其返回所有结果,则搜索需要3-5秒才能返回。
通常情况下,我会看到这是因为它必须继续搜索,直到找到所有它们,这需要额外的时间。然而,当只返回10个结果时,搜索仍然显示总共有733次点击,所以它已经知道要返回哪些文档了!
请注意,我不会在这里返回_source字段,我只想要返回_ids的列表,所以我无法想象它必须从磁盘读取更多的数据,因为所有的_ids肯定都存储在索引中。
我是不是漏掉了什么东西?
(我的_ids是我们内部使用的guids )。
编辑:自从发布后,我用映射的两个更改重新编制了索引:
这解决了问题,现在我得到了所有的733 _ids在大约50毫秒。不过,不确定是哪一种改变解决了问题。我会带他们中的一个回去重新索引。
发布于 2014-03-18 16:26:51
这需要时间。因为它需要从ES中获取所有数据并计算查询的得分。尝试1)将字段设置为“不分析”,然后在其中搜索。2)将ES的存储类型从simplfs更改为mmap。(在index.store.type:mmaps中提到“elasticsearch.yml”)3)尽可能配置更少的碎片。更多碎片必须等于移动要使用的节点..。
https://stackoverflow.com/questions/22475551
复制相似问题