asticsearch - улучшить производительность запросов - PullRequest
1 голос
/ 27 января 2020

Я использую размещённое облакоasticsearch с двумя индексами, каждый из которых содержит 50 000 документов, один из которых имеет размер около 300 МБ (для этого мы применяем поиск), а другой - 50 МБ (для этого мы применяем предложение), а также добавил кэширование запросов к обоим индексам.

  1. индекс размером 300 МБ (используется для поиска)
    • Этот запрос занимает от 1,2 с до 1,5 с время отклика Настройки JSON
{
  "index.blocks.read_only_allow_delete": "false",
  "index.priority": "1",
  "index.query.default_field": [
    "*"
  ],
  "index.write.wait_for_active_shards": "1",
  "index.refresh_interval": "9000s",
  "index.requests.cache.enable": "true",
  "index.analysis.analyzer.edge_ngram_analyzer.filter": [
    "lowercase"
  ],
  "index.analysis.analyzer.edge_ngram_analyzer.tokenizer": "edge_ngram_tokenizer",
  "index.analysis.analyzer.keyword_analyzer.filter": [
    "lowercase",
    "asciifolding",
    "trim"
  ],
  "index.analysis.analyzer.keyword_analyzer.char_filter": [],
  "index.analysis.analyzer.keyword_analyzer.type": "custom",
  "index.analysis.analyzer.keyword_analyzer.tokenizer": "keyword",
  "index.analysis.analyzer.singular_plural_analyzer.type": "snowball",
  "index.analysis.analyzer.edge_ngram_search_analyzer.tokenizer": "lowercase",
  "index.analysis.tokenizer.edge_ngram_tokenizer.token_chars": [
    "letter"
  ],
  "index.analysis.tokenizer.edge_ngram_tokenizer.min_gram": "2",
  "index.analysis.tokenizer.edge_ngram_tokenizer.type": "edge_ngram",
  "index.analysis.tokenizer.edge_ngram_tokenizer.max_gram": "5",
  "index.number_of_replicas": "1"
}
индекс с размером 50 МБ (используется для предложения)
  • Этот запрос занимает время ответа от 0,5 с до 0,6 с.

Настройка JSON

{
  "index.blocks.read_only_allow_delete": "false",
  "index.priority": "1",
  "index.query.default_field": [
    "*"
  ],
  "index.write.wait_for_active_shards": "1",
  "index.refresh_interval": "90000s",
  "index.requests.cache.enable": "true",
  "index.analysis.analyzer.edge_ngram_analyzer.filter": [
    "lowercase"
  ],
  "index.analysis.analyzer.edge_ngram_analyzer.tokenizer": "edge_ngram_tokenizer",
  "index.analysis.analyzer.keyword_analyzer.filter": [
    "lowercase",
    "asciifolding",
    "trim"
  ],
  "index.analysis.analyzer.keyword_analyzer.char_filter": [],
  "index.analysis.analyzer.keyword_analyzer.type": "custom",
  "index.analysis.analyzer.keyword_analyzer.tokenizer": "keyword",
  "index.analysis.analyzer.singular_plural_analyzer.type": "snowball",
  "index.analysis.analyzer.edge_ngram_search_analyzer.tokenizer": "lowercase",
  "index.analysis.tokenizer.edge_ngram_tokenizer.token_chars": [
    "letter"
  ],
  "index.analysis.tokenizer.edge_ngram_tokenizer.min_gram": "2",
  "index.analysis.tokenizer.edge_ngram_tokenizer.type": "edge_ngram",
  "index.analysis.tokenizer.edge_ngram_tokenizer.max_gram": "5",
  "index.number_of_replicas": "0"
}

Я хочу увеличить время отклика для обоих запросов.

Прямо сейчас добавлена ​​ссылка на изображения конфигураций облака системы /asticsearch.

inline image

Не могли бы вы помочь мне повысить производительность запросов.

1 Ответ

0 голосов
/ 28 января 2020

Я понял это и решил свою проблему, установив эластичный поиск на свой локальный сервер и удалив сетевую зависимость.

Проблема заключалась в удаленном облаке эластичного поиска и медленной сети. Теперь оба запроса дают ответ в течение 15 - 20 мс.

...