ElasticSeach Completion-Suggester удаляет последний символ при поиске документа - PullRequest
0 голосов
/ 03 апреля 2019

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

Например, если я ищу «CBL», он ищет «CB» и возвращает результат ниже.

C.B.BUILDERS AND CONSTRUCTIONS Private Limited
CB BUSINESS SOLUTION PRIVATE LIMITED
C.B.CHAINS LIMITED
C.B. CHEMICALS LTD
C B COMPUSYSTEMS PRIVATE LIMITED

Где будет возвращен результат ниже по функциональности.

 CBL DATA RECOVERY TECHNOLOGIES PRIVATE LIMITED
 CBL DATA SCIENCE PRIVATE LIMITED
 CBL GLOBAL INDUSTRIES PRIVATE LIMITED
 CBL INVESTMENTS LTD
 CBL Trading Concepts Private Limited

Вот настройки индекса и Конфигурация, которые я применил.

{
  "settings": {
    "index": {
      "analysis": {
        "filter": {},
        "analyzer": {
          "keyword_analyzer": {
            "filter": [
              "lowercase",
              "asciifolding",
              "trim"
            ],
            "char_filter": [],
            "type": "custom",
            "tokenizer": "keyword"
          },
          "edge_ngram_analyzer": {
            "filter": [
              "lowercase"
            ],
            "tokenizer": "edge_ngram_tokenizer"
          },
          "edge_ngram_search_analyzer": {
            "tokenizer": "lowercase"
          }
        },
        "tokenizer": {
          "edge_ngram_tokenizer": {
            "type": "edge_ngram",
            "min_gram": 2,
            "max_gram": 5,
            "token_chars": [
              "letter"
            ]
          }
        }
      }
    }
  },
  "mappings": {
    "_doc": {
      "properties": {
        "CleanedCompanyName": {
          "type": "text",
          "fields": {
            "keywordstring": {
              "type": "text",
              "analyzer": "keyword_analyzer"
            },
            "edgengram": {
              "type": "text",
              "analyzer": "edge_ngram_analyzer",
              "search_analyzer": "edge_ngram_search_analyzer"
            },
            "completion": {
              "type": "completion"
            }
          },
          "analyzer": "standard"
        }
      }
    }
  }
}

Ниже приведенпоисковый запрос, который я использую.

{ "suggest": 
    { "companyname-suggest-fuzzy": 
        { "prefix": "CBL", 
          "completion": { 
                "field": "CleanedCompanyName.completion", 
                "fuzzy": { 
                    "fuzziness": "AUTO" 
                    } 
                } 
        } 
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...