Как составить релевантный поиск в Elastic Search?

Всем привет, Пытаюсь построить релевантный поиск на сайте. и частично реализовал.
Этот запрос уже был
{
	"query": {
		"bool": {
			"filter": {
				"bool": {
					"must": [{
						"terms": {
							"visibility": [3, 4]
						}
					}, {
						"terms": {
							"status": [0, 1]
						}
					}, {
						"terms": {
							"sku": ["5111-0243", "9901-0131", "5111-0202", "5111-0301", "5115-0071"]
						}
					}]
				}
			},
			"must": {
				"query_string": {
					"fields": ["name"],
					"query": "*Ка*"
				}
			}
		}
	}
}

А этот блок написал отдельно и вроде он выдаёт нужный мне результат только без фильтров.
{
  "query": {
    "simple_query_string": {
      "query": "Кар*",
      "fields": [
        "name^2",
        "shot_name"
      ],
      "default_operator": "and",
      "analyze_wildcard": true
    }
  }
}

Но когда я совместил их вместе, Elastic ничего не возращает, и куда бы я не переставлял мой блок, он ругается либо пустой ответ. Так вот , кто знаком с этой темой , скажите в каком порядке нужно использовать эти логические блоги ? Т.к bool -> filter -> bool -> must немного смущает, я выносил за их пределы, в Bool и в filter выдаёт ошибку .
{
  "query": {
    "bool": {
      "filter": {
        "bool": {
          "must": [
            {
              "terms": {
                "visibility": [
                  3,
                  4
                ]
              }
            },
            {
              "terms": {
                "status": [
                  0,
                  1
                ]
              }
            },
            {
              "terms": {
                "sku": [
                  "5111-0243",
                  "9901-0131"
                ]
              }
            }
          ]
        }
      },
      "simple_query_string": {
        "query": "Кар*",
        "fields": [
          "name^2",
          "shot_name"
        ],
        "default_operator": "and",
        "analyze_wildcard": true
      }
    }
  }
}
  • Вопрос задан
  • 194 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы