Elasticsearch индекс для поиска - PullRequest
0 голосов
/ 22 мая 2018

Со следующим индексом, на metricname_text, допустим, у нас есть документ, который содержит строку 1048avg_percent_memory_used.Я обнаружил, что если я наберу 1048 для результата поиска, я найду его.Однако, если я наберу percent_memory, он не найдет никаких результатов.Может ли кто-нибудь указать мне правильное указание на правильный индекс, чтобы использовать его для частичного совпадения слова, но не обязательно привязанного к началу слова?Я также не уверен, что запрос match является правильным типом поиска.

{
  "settings": {
    "analysis": {

      "filter": {
          "autocomplete_filter": { 
              "type":     "edge_ngram",
              "min_gram": 1,
              "max_gram": 20
          }
      },

      "analyzer": {
          "autocomplete": {
              "type":      "custom",
              "tokenizer": "standard",
              "filter": [
                  "lowercase",
                  "autocomplete_filter" 
              ]
          }
      }
    }
  },
  "mappings": {
    "metric": {
      "properties": {
        "metricname_text": {
          "type": "text",
          "analyzer": "autocomplete"
        },
      }
    }
  }
}

1 Ответ

0 голосов
/ 22 мая 2018
metadata = {
  "settings": {
      "analysis": {
          "filter": {
              "trigrams_filter": {
                  "type":     "ngram",
                  "min_gram": 3,
                  "max_gram": 3
              }
          },
          "analyzer": {
              "trigrams": {
                  "type":      "custom",
                  "tokenizer": "standard",
                  "filter":   [
                      "lowercase",
                      "trigrams_filter"
                  ]
              }
          }
      }
  },
  "mappings": {
    "metric": {
      "properties": {
        "metricname_text": {
            "type":     "text",
            "analyzer": "trigrams"
        },
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...