gpt4 book ai didi

elasticsearch - 带有multi_field的elasticsearch index_name

转载 作者:行者123 更新时间:2023-12-02 22:41:56 24 4
gpt4 key购买 nike

我有2个单独的索引,每个索引包含不同的类型
我想从两者获得合并的记录。

问题在于,一种类型具有字段“ email ”,另一种类型具有“ work_email ”。但是,出于排序目的,我想将它们视为同一事物。
这就是为什么我尝试在其中一种类型中使用 index_name 的原因。

这是映射:

索引1:

  "mappings": {
"people": {
"properties": {
"work_email": {
"type": "string",
"index_name": "email",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}

索引2:
  "mappings": {
"companies": {
"properties": {
"email": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}

我希望这可以工作:
GET /index1,index2/people,companies/_search?
{
"sort": [
{
"email.raw": {
"order": "asc"
}
}
]
}

但是,我得到一个错误,即“人”类型中没有这样的字段。
我是在做错什么,还是有更好的方法来实现我所需要的?

在这里您可以找到说明问题的娱乐脚本: https://gist.github.com/pmishev/11375297

最佳答案

映射多字段的方式存在问题。请查看下面的映射并尝试建立索引。您应该得到结果

"mappings": {
"people": {
"properties": {
"work_email":{
"type": "multi_field",
"fields": {
"work_email":{
"type": "string",
"index_name": "email"
},
"raw":{
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}

我们应将类型指定为multi_field,并在字段下应指定必填字段...。

关于elasticsearch - 带有multi_field的elasticsearch index_name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23348172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com