Анализатор поиска синонимов Elasticsearch не обновляется после обновления synonyms.txt? - PullRequest
0 голосов
/ 09 октября 2018

Итак, у меня есть индекс с отображением синонимов, определенным в анализаторе поиска.Когда я впервые создал индекс, синонимы были найдены при поиске.После этого я обновил файлы synonyms.txt на узлах один раз, чтобы обновить отображение синонимов, и перезапустил каждый узел после внесения изменений.Это привело к изменению синонима при поиске по всему индексу.

Теперь, когда я изменяю файл синонимов и перезагружаю узлы, отображение синонимов не обновляется, как мне кажется.Я что-то пропустил?Я думал, так как отображение синонимов было на search_analyzer, мне не нужно будет каждый раз переиндексировать, чтобы отразить изменения.

Вот мое определение индекса:

PUT /synonym_index
{
  "aliases": {},
  "mappings": {
    "_doc": {
      "properties": {
        "name": {
          "type": "text",
          "fields": {
            "english": {
              "type": "text",
              "analyzer": "english",
              "search_analyzer":"english_and_synonyms"
            }
          }
        }
      }
    }
  },
  "settings": {
    "analysis": {
      "analyzer": {
        "english": {
          "tokenizer":  "standard",
          "filter": [
            "english_possessive_stemmer",
            "lowercase",
            "english_stop",
            "english_keywords",
            "english_stemmer"
          ]
        },
        "english_and_synonyms": {
          "tokenizer":  "standard",
          "filter": [
            "search_synonyms",
            "english_possessive_stemmer",
            "lowercase",
            "english_stop",
            "english_keywords",
            "english_stemmer"
          ]
        }
      },
      "filter": {
        "english_stop": {
          "type":       "stop",
          "stopwords":  "_english_" 
        },
        "english_keywords": {
          "type":       "keyword_marker",
          "keywords":   ["example"] 
        },
        "english_stemmer": {
          "type":       "stemmer",
          "language":   "english"
        },
        "english_possessive_stemmer": {
          "type":       "stemmer",
          "language":   "possessive_english"
        },
        "search_synonyms" : {
            "type" : "synonym_graph",
            "synonyms_path" : "analysis/synonyms.txt"
        }
      }
    },
    "index": {
      "number_of_shards": "5",
      "number_of_replicas": "1"
    }
  }
}

Я попытался перезапуститьузел с

перезапуском службы эластичного поиска sudo service

, а также с

остановкой поиска упругого сервиса sudo start*

но ни один из них не вызывает отражения в моих изменениях.Нужно ли переиндексировать каждый раз, когда я обновляю файл синонимов, даже если это поисковый анализатор?

1 Ответ

0 голосов
/ 09 октября 2018

Чтобы отразить изменение в файле синонимов, вам необходимо закрыть и открыть индекс после внесения изменений в файл.Это можно сделать, выполнив почтовый запрос:

POST /synonym_index/_close

POST /synonym_index/_open

После вызова _open вы должны увидеть изменения, отраженные в ваших запросах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...