Spring Data Elasticseach: Как создать объект Completion с несколькими весами? - PullRequest
0 голосов
/ 17 июня 2019

Мне удалось создать работающую службу автозаполнения, используя Elasticsearch с Spring Boot, но я не могу назначить разные веса для предложений автозаполнения.

Когда я строю объект Completion (org.springframework.data.elasticsearch.core.completion.Completion), я использую стандартный конструктор, а затем я присваиваю вес объекту, например (я использую Kotlin)

val completion = Completion(arrayOf("Sentence one", "Second sentence"))
completion.weight = 10

(...)

myEntity.suggest = completion

что дает следующий JSON для Elasticsearch

{
    "suggest" : {
        "input": [ "Sentence one", "Second sentence" ],
        "weight" : 10
    }
}

Но, согласно документации Elasticsearch (https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html), я бы хотел достичь чего-то подобного

{
    "suggest" : [
        {
            "input": "Sentence one",
            "weight" : 10
        },
        {
            "input": "Second sentence",
            "weight" : 5
        }
    ]
}

Возможно ли это с spring-data-elasticsearch? Если да, как я могу это сделать?

1 Ответ

1 голос
/ 19 июня 2019

Нет, на данный момент второй случай не поддерживается Spring Data Elasticsearch.

Оба JSON, которые вы показываете, действительны, первый - для нескольких входов, которые имеют одинаковый вес, второй - для нескольких входов, когда вход iich имеет другой вес.

Пожалуйста, зарегистрируйте проблему в Spring Data Elasticsearch Jira , чтобы добавить поддержку объекта Completion для поддержки этого случая.

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