Spring Data Elasti c Поиск @Query @Highlight - PullRequest
0 голосов
/ 03 мая 2020

Я не могу получить подсвеченные поля с этим кодом запроса, есть мысли, я использую SDE4.0.0.RC2, я хочу использовать @Query:

@Query("{\n" +
           "  \"multi_match\": {\n" +
           "    \"query\": \"?0\",\n" +
           "    \"fields\": [\n" +
           "      \"code^2\",\n" +
           "      \"name\"\n" +
           "    ],\n" +
           "    \"analyzer\": \"standard\"\n" +
           "  }\n" +
           "}")
   @Highlight(
           fields = @HighlightField(
                   name = "['code','name']"),
           parameters = @HighlightParameters(
                   preTags = "<strong>",
                   postTags = "</strong>",
                   fragmentSize = 500,
                   numberOfFragments = 3
           )
   )
   List<CodeNames> findAllByCodeAndNameOrderByName(String code, Pageable pageable);

1 Ответ

0 голосов
/ 04 мая 2020

Вам необходимо указать каждое поле выделения в отдельном аргументе аннотации:

   @Query("{\n" +
            "  \"multi_match\": {\n" +
            "    \"query\": \"?0\",\n" +
            "    \"fields\": [\n" +
            "      \"code^2\",\n" +
            "      \"name\"\n" +
            "    ],\n" +
            "    \"analyzer\": \"standard\"\n" +
            "  }\n" +
            "}")
    @Highlight(
        fields = {
            @HighlightField(name = "code"),
            @HighlightField(name = "name")
        },
        parameters = @HighlightParameters(
            preTags = "<strong>",
            postTags = "</strong>",
            fragmentSize = 500,
            numberOfFragments = 3
        )
    )
    List<CodeNames> findAllByCodeAndNameOrderByName(String code, Pageable pageable);

Редактировать:

В дополнение к этому вы должны изменить тип возврата вашего метода:

List<SearchHit<CodeNames>> findAllByCodeAndNameOrderByName(String code, Pageable pageable);

или

SearchHits<CodeNames> findAllByCodeAndNameOrderByName(String code, Pageable pageable);

, чтобы можно было прочитать значения выделения из возвращенных SearchHit, см. https://docs.spring.io/spring-data/elasticsearch/docs/4.0.0.RC2/reference/html/#elasticsearch .operations.searchresulttypes

...