我正在尝试为每个数据源创建一个具有多种类型的索引。
以下映射确实为一种类型创建了映射:
curl -XPUT localhost:9200/test -d '{
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"type1" : {
"_source" : { "enabled" : false },
"properties" : {
"field1" : { "type" : "string", "index" : "not_analyzed" }
}
}
},
"mappings" : {
"type2" : {
"_source" : { "enabled" : false },
"properties" : {
"source1" : { "type" : "string", "index" : "not_analyzed" }
}
}
}
}'
当我运行时:
curl -X GET 'http://localhost:9200/test/tpe1/_mapping?pretty=true'
没有显示任何内容。
如何在弹性搜索中为多种类型创建映射?
答案 0 :(得分:0)
虽然可能有一种方法可以在一次调用中执行此操作,但在多次调用中执行此操作同样容易,这样可以使事情更加分离。
PUT hilden1
PUT hilden1/type1/_mapping
{
"properties": {
"value1": {
"type": "string"
}
}
}
PUT hilden1/type2/_mapping
{
"properties": {
"value2": {
"type": "string"
}
}
}
GET hilden1/_mapping
设置2个调用的映射还有一个额外的好处,即不会影响同一索引中的第3个类型。
答案 1 :(得分:0)
首先,您将应用映射到弹性搜索
curl -XPUT localhost:9200/index/_setting -d @indexsetting.json
为Type1和Type2 Mapping创建一个两个json文件 Mapping1.json:
{
"type1":{
"properties" : {
"field1" : { "type" : "string", "index" : "not_analyzed" }
}}}
Mapping2.json
{
"type2":{
"properties" : {
"field1" : { "type" : "string", "index" : "not_analyzed" }
}}}
然后,您将逐个执行以下查询
curl -XPUT localhost:9200/index/type1/_mapping -d @mapping1.json
curl -XPUT localhost:9200/index/type2/_mapping -d @mapping2.json
这是在弹性搜索中创建索引和Mappping的正确方法。