Можно ли отобразить поле «Завершение» с помощью «Подсказки по контексту» в spring-data -ластику? - PullRequest
0 голосов
/ 16 января 2019

Я хочу отобразить поле в Entity как @CompletionField, но с контекстами, потому что сейчас Completion включает String [] и поле веса int. Я хочу фильтровать завершение в индексе.

@Document(indexName = "compl_index")
    public class ComplIndex {
    @CompletionField
    private Completion suggestions;
   }

Когда я пишу этот класс, у меня есть простое завершение со строковым массивом и весом, но я хочу отобразить сущность, подобную этой, и работать с контекстами. Я пытаюсь решить эту проблему - написать новую сущность с типом полей, контекстами и т. Д. И аннотировать с помощью Mapping, поле контекста исключения «CompletionFieldMapper throw» не поддерживается для поля: ...

"name": {
          "type": "completion",
          "contexts": [
            {
              "name": "year",
              "type": "category",
              "path": "year"
            }
          ]
        },
        "year": {
          "type": "text"
        }

1 Ответ

0 голосов
/ 17 мая 2019

Это уже поддерживается, вы можете найти пример здесь DATAES-536 . Для более низкой версии вам нужно написать собственную модель завершения и использовать поле @Mapping вместо @ CompletionField.

public class CustomCompletion {

    private String[] input;
    private Map<String, List<String>> contexts;
    private Integer weight;

    private CustomCompletion() {
        // required by mapper to instantiate object
    }

    public CustomCompletion(String[] input) {
        this.input = input;
    }

    // Setter getter

}

@Document(indexName = "compl_index")
public class ComplIndex {

    @Mapping(mappingPath = "/mapping/compl-index-suggestions.json")
    private CustomCompletion suggestions;

}

компл-индекс-suggestions.json

{
  "type": "completion",
  "contexts": [
    {
      "name": "year",
      "type": "category"
    }
  ]
}
...