_all:一個(gè)把其它字段值 當(dāng)作一個(gè)大字符串來索引的特殊字段。
當(dāng)你不知道所需查詢字段训桶,在文檔中的位置時(shí)使用_all字段是非常適合的累驮。
曾經(jīng)在es5.6.3版本中使用過_all字段查詢相關(guān)文檔,這次在es6中我又一次嘗試使用這個(gè)字段舵揭,結(jié)果這個(gè)_all被禁止了谤专。
PUT ik_demo
{
"mappings": {
"doc":{
"_all": {"enabled": true},
"properties": {
"title":{
"type": "text"
},
"content":{
"type": "text"
},
"author":{
"type": "text"
}
}
}
}
}
結(jié)果
這個(gè)字段被禁用了,但是我們可以自定義_all字段午绳。
使用copy_to參數(shù)實(shí)現(xiàn)_all功能:
PUT ik_demo
{
"mappings": {
"doc":{
"properties": {
"title":{
"type": "text",
"copy_to": "allProp"
},
"content":{
"type": "text",
"copy_to": "allProp"
},
"author":{
"type": "text",
"copy_to": "allProp"
},
"allProp":{
"type": "text"
}
}
}
}
}
索引幾條數(shù)據(jù)
POST ik_demo/doc
{
"title":"程序員是怎樣煉成的",
"content":"首先...然后...堅(jiān)持...最終...",
"author":"碼界小白"
}
POST ik_demo/doc
{
"title":"猿哥最棒",
"content":"瞎比比",
"author":"程序員鼓勵(lì)師"
}
POST ik_demo/doc
{
"title": "世上僅有",
"content": "無敵程序員",
"author": "猿哥"
}
然后直接查詢allProp字段就可以了置侍。
GET ik_demo/_search
{
"query":{
"match": {
"allProp": "程序員"
}
}
}
查詢結(jié)果:
所有含有"程序員"的文檔均被搜索到了。