我有一个索引:产品
curl -XPUT "http://localhost:9200/products/product/1" -d'
{
"title": "Iphone 6",
"category_id": 4,
"price": 7788,
"owner_id": 21
}'
如何为3个字段创建渗透指数:title,category_id,price?
Percolate Query我在这里只找到了如何做1场。
答案 0 :(得分:1)
创建具有两个映射的索引
curl -XPUT 'localhost:9200/percolate-index?pretty' -H 'Content-Type: application/json' -d'
{
"mappings": {
"doctype": {
"properties": {
"title": {
"type": "text"
},
"category_id": {
"type": "long"
},
"price": {
"type": "long"
}
}
},
"queries": {
"properties": {
"query": {
"type": "percolator"
}
}
}
}
}'
在过滤器中注册查询
curl -XPUT 'localhost:9200/percolate-index/queries/1?refresh&pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"bool": {
"must": {
"multi_match": {
"query": "iphone",
"fields": ["title"]
}
},
"filter": [
{
"terms": {
"category_id": [4]
}
}
]
}
}
}'
将文档与注册的过滤器查询匹配
curl -XGET 'localhost:9200/percolate-index/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query" : {
"percolate" : {
"field" : "query",
"document_type" : "doctype",
"document" : {
"title" : "iphone 6",
"category_id" : 4
}
}
}
}'