2017-02-08 5 views
0

У меня есть индекс: продуктыКак создать индекс просачиваться в Elasticsearch по нескольким полям

curl -XPUT "http://localhost:9200/products/product/1" -d' 
{ 
    "title": "Iphone 6", 
    "category_id": 4, 
    "price": 7788, 
    "owner_id": 21 
}' 

Как создать индекс просачиваются для 3-х полей: название, CATEGORY_ID, цена?

Percolate Query здесь Я только нашел, как это сделать для 1 поля.

ответ

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 
      } 
     } 
    } 
}' 

 Смежные вопросы

  • Нет связанных вопросов^_^