Я экспериментирую с index.max_terms_count.Я попытался выполнить запрос терминов с более чем 65 536 терминами, и я был удивлен, увидев, что он действительно выполняется, потому что я прочитал предупреждение здесь :
Выполнениезапрос запроса терминов с большим количеством терминов может быть довольно медленным, поскольку каждый дополнительный термин требует дополнительной обработки и памяти.Чтобы избежать этого, максимальное количество терминов, которые могут использоваться в запросе терминов как напрямую, так и через поиск, было ограничено 65536
.Этот максимум по умолчанию можно изменить для определенного индекса с помощью установки индекса index.max_terms_count
.
Чтобы проверить это дальше, я попытался установить index.max_terms_count равным 2 или 3, но он все еще не 'работать так, как я ожидаю.Не могли бы вы помочь мне понять, что я делаю (или понимаю) неправильно?
Шаги:
Запустить ES с помощью Docker:
1.1.dockerpull docker.elastic.co/elasticsearch/elasticsearch:6.6.0
1.2.docker run -p 9200: 9200 -p 9300: 9300 -e "discovery.type = single-node" docker.elastic.co/elasticsearch/elasticsearch:6.6.0
Индексный документ: curl -X POST http://localhost:9200/twitter/_doc/1 -H 'Content-Type: application / json' -d '{"user": "kimchy", "post_date": "2009-11-15T14: 12: 12","message": "попробовать Elasticsearch", "tags": ["foo", "bar", "sun", "clouds"]} '
Изменить настройки: curl -X PUT http://localhost:9200/twitter/_settings -H 'Content-Type: application / json' -d '{"index": {"max_terms_count": 2}}'
Проверить настройкиприменяются: curl -X GET http://localhost:9200/twitter/_settings
Выполнить поиск: curl -X POST 'http://localhost:9200/twitter/_search?pretty' -H' Content-Type: application / json '-d' {"query": {" термин ": {" теги ": [" солнце "," облачно "," йо "," привет "," привет "]}}} '