我想在文檔中使用下列映射搜索:ElasticSearch搜索
{
"products":{
"properties":{
"product_id":{
"type":"string"
},
"naam":{
"type":"string"
},
"merk":{
"type":"string"
},
"lijn":{
"type":"string"
},
"sku":{
"type":"string"
},
"omschrijving":{
"type":"string",
"boost":"0.5"
},
"groep":{
"type":"string"
},
"ean":{
"type":"string",
"boost":"2.0"
},
"kenmerken":{
"type":"nested",
"dynamic":true
},
"levertijd_min":{
"type":"string"
},
"levertijd_max":{
"type":"string"
}
}
}
}
我想在「NAAM」進行搜索,「omschrijving」等,而且在動態嵌套文檔「kenmerken」的映射 我創建了幾個搜索查詢,但它們都不起作用。
我應該使用布爾還是過濾器?或兩者的組合?
我是否關閉?
$params['body'] = array(
'query' => array(
'filtered' => array(
'query' => array(
'match_all' => array()
),
'filter' => array(
'or' => array(
array('term' => array(
'naam' => $_GET['ZOEKTERMEN'],
)),
array('terms' => array(
'omschrijving' => explode(" ", $_GET['ZOEKTERMEN'])
)),
array('terms' => array(
'merk' => explode(" ", $_GET['ZOEKTERMEN'])
)),
array('term' => array(
'product_id' => $_GET['ZOEKTERMEN']
)),
array('nested' => array(
'path' => 'kenmerken',
'query' => array(
'filtered' => array(
'query' => array(
'match_all' => array()
),
'filter' => array(
'term' => array(
'_all' => $_GET['ZOEKTERMEN']
)
)
)
)
))
)
)
)
)
);
看這裏看起來好像嵌套文檔中的字符串被複制到* root *文檔的'_all'字段。所以你的嵌套子句沒有做你需要的。 https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-nested-type.html –