Elastic Query для полнотекстового поиска - PullRequest
0 голосов
/ 20 ноября 2018

Создан индекс с использованием эластичного POST-запроса (будет несколько записей)

POST /rewards/deals/_bulk
{ "index": {}}
{
    "deal_id":25, 
    "title": "Deal 1 Title", 
    "deal_subtitle":"Deal 1 subtitle - Amazing deal 20% off",
    "header_title":"Never before deal", 
    "header_subtitle":"This is available as an amazing deal you can use.", 
    "categories":[
    {"categoryId":32, "categoryName":"Treats!"},
    {"categoryId":31, "categoryName":"Travel & Transportation"}],
    "stores_list": [{"storeId":524, "storeName":"Awesome store", "geoX":"", "geoY":"", "postalCode":"417392"}], 
    "merchant_name": "Merchant Name", 
    "id": 1, 
    "merchant_id": 137, 
    "startEnd":"2018-11-16 00:00:00", 
    "endDate":"2018-11-30 00:00:00"
} 

написал запрос для выполнения полнотекстового поиска

GET /rewards/deals/_search
{
  "query": {
    "multi_match": {
      "query": "treat",
      "fields": ["title^10", "deal_subtitle^10", "header_subtitle^5", "header_title^5", "categories.categoryName^3", "stores_list.storeName^3", "stores_list.postalCode^3", "merchant_name^10"]
    }
  }
}

Но я не получаю никакихданные в ответ на «лакомство» и «лакомство» (вытекающие из лакомств) доступны в category.categoryName.Может кто-нибудь, пожалуйста, помогите.Когда я ищу "лечит", я получаю ответ.как получить ответ на слова, начинающиеся с ключевого слова поиска.

1 Ответ

0 голосов
/ 21 ноября 2018

Получил это, просто добавив "тип" к существующему запросу

GET /rewards/deals/_search
{
  "query": {
    "multi_match": {
      "query": "treat",
      "type":"phrase_prefix",
      "fields": ["title^10", "deal_subtitle^10", "header_subtitle^5", "header_title^5", "categories.categoryName^3", "stores_list.storeName^3", "stores_list.postalCode^3", "merchant_name^10"]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...