假设我们有一个数据集,其中包含一组域{domain.com,domain2.com}以及一组用户{user@domain.com,angryuser @ domain2.com,elastic@domain3.com}。< / p>
这样我们可以假设域和用户都有几个共同的属性,例如&#34;域&#34;,当属性名称匹配时,也可以进行映射和可能的值。
然后我们加载弹性搜索索引,所有集合按类型,域和用户分隔。
显然在我们的系统中,与域相比,我们会有更多的用户,因此在查询域相关数据时,期望通过属性类型过滤查询会快得多吗?
我的问题是,拥有大约500万用户和200k域名,为什么当我的索引只包含域数据,用户被删除时,查询运行速度比根据类型过滤对象快得多?难道它至少在类似的表现吗?在我当前状态下,如果索引上没有用户,我们可以每秒匹配20个域,但是当我们加载用户时它会降低到4,即使我们仍然按类型过滤。
也许这是我不想要的东西,因为我对弹性搜索很新。
更新:
这是基本的查询
"query" : {
"flt_field": {
"domain_address": {
"like_text": "chroma",
"fuzziness": 0.3
}
}
}
映射就是这样的
"user": {
"properties": {
...,
"domain_address": {
"type": "string",
"boost": 2.4,
"similarity": "linear"
}
}
},
"domain": {
"properties": {
...,
"domain_address": {
"type": "string",
"boost": 2.4,
"similarity": "linear"
}
}
}
......中的其他字段,但它们的映射不应影响结果???