如何使用Elasticsearch中的copy_to来提高搜索效率
在今天的这个教程中,我们来着重讲解一下如何使用Elasticsearch中的copy来提高搜索的效率。比如在我们的搜索中,经常我们会遇到如下的文档:
1 | { |
在这里,我们可以看到在这个文档中,我们有这样的几个字段:
1 | "city" : "北京", |
它们是非常相关的。我们在想是不是可以把它们综合成一个字段,这样可以方便我们的搜索。假如我们要经常对这三个字段进行搜索,那么一种方法我们可以在must子句中使用should子句运行bool查询。这种方法写起来比较麻烦。有没有一种更好的方法呢?
ES集群SSL相关
为您的每个Elasticsearch节点生成一个私钥和X.509证书
在Elasticsearch加密通讯
前提条件:确认xpack.security.enabled设置为true
生成节点证书
为您的Elasticsearch集群创建一个证书颁发机构
bin/elasticsearch-certutil ca
您可以将群集配置为信任具有此CA签名的证书的所有节点。
该命令输出单个文件,默认名称为elastic-stack-ca.p12。此文件是PKCS#12密钥库,其中包含CA的公共证书和用于对每个节点的证书签名的私钥。
该elasticsearch-certutil命令还会提示您输入密码以保护文件和密钥。如果您打算将来将更多节点添加到群集中,请保留该文件的副本并记住其密码。为集群中的每个节点生成证书和私钥
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
输出是单个PKCS#12密钥库,其中包括节点证书,节点密钥和CA证书。
还提示您输入密码。您可以输入证书和密钥的密码,也可以按Enter键将密码保留为空白。
默认情况下,elasticsearch-certutil生成的证书中没有主机名信息(即,它们没有任何“使用者备用名称”字段)。这意味着您可以对群集中的每个节点使用证书,但是必须关闭主机名验证,如下面的配置所示。
如果你想用你的集群中的主机名的验证,运行 elasticsearch-certutil cert命令一次,每个节点和提供的–name,–dns和–ip选项。