es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo aumentar el tamaño de respuesta en Elasticsearch con spring-data utilizando la anotación @Query?

Actualmente la consulta siguiente solo devuelve 10 resultados de búsqueda. Quiero aumentarlo a 100. ¿Cómo puedo hacerlo?

@Query("{"match": {"metaData.transcript1": {"query": "?0", "fuzziness": "AUTO", "prefix_length": "0", "max_expansions": "100", "boost": "1.0"}}}")
@Highlight(fields = {@HighlightField(name = "metaData.transcript1")}, parameters = @HighlightParameters(preTags = "<em>", postTags = "</em>", fragmentSize = 50, numberOfFragments = 3))
List<SearchHit<Audio>> findByKeyword(String query);
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para aumentar el número de resultados de búsqueda de 10 a 100, debes modificar el parámetro “max_expansions” en la consulta. En la consulta actual, max_expansions está configurado en 100, pero solo se refiere al número de expansiones de términos para la consulta fuzzy.

    Para aumentar el número total de resultados de búsqueda, debes modificar el parámetro de tamaño de la consulta a 100. El parámetro de tamaño controla el número máximo de resultados que se devolverán de la consulta.

    Entonces, la consulta modificada debería verse así:

    @Query("{\"match\": {\"metaData.transcript1\": {\"query\": \"?0\",\"fuzziness\": \"AUTO\",\"prefix_length\": \"0\",\"boost\": \"1.0\"}}}")
    @Highlight(fields = {@HighlightField(name = "metaData.transcript1")},
        parameters = @HighlightParameters(
            preTags = "<em>",
            postTags = "</em>",
            fragmentSize = 50,
            numberOfFragments = 3
        ))
    List<><audio>> findByKeyword(String query, Pageable pageable);
    

    Luego, al llamar al método findByKeyword, debes pasar un objeto PageRequest con un tamaño fijado en 100:

    PageRequest pageRequest = PageRequest.of(0, 100);
    List<><audio>> audioList = audioRepository.findByKeyword(query, pageRequest);
    

    Esto devolverá los primeros 100 resultados de búsqueda para la consulta dada.

Comments are closed.