我在一个项目上工作,我需要根据"创建"来汇总结果。和"标签"领域。 我创建了以下查询,它们都按照我的预期给出了结果。但我想知道哪个查询运行得更快?
我的第一个问题:
Y
我的第二个问题:
public class Raycast : MonoBehaviour
{
Ray myRay; // initializing the ray
RaycastHit hit; // initializing the raycasthit
public GameObject objectToinstantiate;
// Update is called once per frame
void Update()
{
myRay = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(myRay, out hit))
{
if (Input.GetMouseButtonDown(0))
{
Instantiate(objectToinstantiate, hit.point, Quaternion.identity);
Debug.Log(hit.point);
}
}
答案 0 :(得分:1)
由于该字段是keyword
,并且当涉及到正则表达式(仅完美匹配)时,您不需要任何特殊内容,我会像下面这样做。您还要注意我在terms
部分添加了query
过滤器,以便在进行聚合之前尝试缩小结果范围(理论上,对于聚合而言,要做的工作较少) )。另外,我在这里没有看到使用regexp
的理由,因此我使用了terms
聚合。如果您真的对性能比较感兴趣,我建议在该字段中设置更多文档和术语的负载测试,并执行一些测试。 Elastic有自己的基准测试工具,您可以使用它:Rally。
{
"size": 0,
"query": {
"terms": {
"labels": [
"behavior-change",
"first-occurrence"
]
}
},
"aggs": {
"HEATMAP": {
"date_histogram": {
"field": "created",
"interval": "day"
},
"aggs": {
"BEHAVIOUR_CHANGE": {
"terms": {
"field": "labels",
"include": "behavior-change"
}
},
"FIRST_OCCURRENCE": {
"terms": {
"field": "labels",
"include": "first-occurrence"
}
}
}
}
}
}