我们正在使用ES,并正确获得1个带有搜索字段的索引的响应。我需要以下建议:
问题:我有不同的对象,例如联系人,帐户中有记录,可通过帐户(姓名字段用于搜索)中的联系人(电子邮件,电话字段用于搜索)进行搜索
非常感谢您!
答案 0 :(得分:0)
这是我在官方网站上找到的答案。
最好为每种类型(客户,联系人)等使用单独的索引。
使用以下搜索json类型在所有索引中进行搜索。
{"index" : "contacts"}
{"query" : {"match_all" : {}}}
{"index" : "accounts"}
{"query" : {"match_all" : {}}}
curl -H“内容类型:应用程序/ x-ndjson” -XGET localhost:9200 / _msearch --data-binary“ @requests”;回声
谢谢
答案 1 :(得分:0)
我认为您应该知道您的用例。假设将要访问很多搜索查询,这些查询将同时访问帐户和联系信息之类的信息,那么我建议做一个索引。它将帮助您执行复杂的查询,例如聚合等。
它还将帮助您从帐户以及联系信息中选择多个字段。
如果查询要完全隔离,则应该使用不同的专用索引。您只需用逗号分隔的check this
来提及多个索引名称示例:
curl -XGET 'localhost:9200/account,contact/_search?pretty' -H 'application/json' -d'
{
"query":{
"name":"foo"
}
}'
答案 2 :(得分:0)
在您的情况下,一个帐户可能有多个联系人,因此最好将帐户和联系人放在单独的索引中。 Elasticsearch支持多索引搜索,可用于对多个索引执行搜索。