Mi información de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Autor: de ElásticoJeff Vestal, Jack Conradson
En 8.14, Elastic introdujo una nueva función de búsqueda llamada "retrievers" en Elasticsearch. Siga leyendo para conocer su simplicidad y eficiencia, y cómo pueden mejorar sus operaciones de búsqueda.
Los recuperadores son una nueva capa de abstracción agregada a la API de búsqueda en Elasticsearch. Proporcionan la posibilidad de configurar canales de recuperación de varias etapas en una única llamada a la API _search. Esta arquitectura simplifica la lógica de búsqueda en su aplicación al eliminar la necesidad de realizar múltiples llamadas a la API de Elasticsearch para consultas de búsqueda complejas. También reduce la necesidad de lógica del lado del cliente, que a menudo requiere combinar resultados de múltiples consultas.
En la versión inicial se incluyen tres tipos de perros perdigueros. Cada recuperador está diseñado para un propósito específico y, cuando se combinan, pueden realizar búsquedas complejas.
Los tipos disponibles incluyen:
Para consultas tradicionales, la consulta es parte de una llamada API de búsqueda general. Los recuperadores se diferencian en que están diseñados como entidades independientes que pueden usarse individualmente o combinarse fácilmente. Este enfoque modular proporciona una mayor flexibilidad al diseñar estrategias de búsqueda.
Los recuperadores están diseñados como parte de un "árbol de recuperadores", una estructura jerárquica que define las operaciones de búsqueda aclarando su orden y lógica. Esta estructura hace que las búsquedas complejas sean más manejables, más fáciles de entender para los desarrolladores y permite agregar fácilmente nuevas funciones en el futuro.
Los recuperadores admiten la componibilidad, lo que le permite crear canalizaciones e integrar diferentes estrategias de recuperación. Esto permite probar fácilmente diferentes combinaciones de recuperación. También brindan más control sobre cómo se califican y filtran los documentos. Por ejemplo, puede especificar un umbral de puntuación mínimo, aplicar filtros complejos sin afectar la puntuación y utilizar parámetros como terminate_after para optimizar el rendimiento.
Mantiene la compatibilidad con elementos de consulta heredados y los convierte automáticamente en recuperadores adecuados.
Veamos algunos ejemplos del uso de recuperadores. Usamos el conjunto de datos de muestra de IMDB.
Puedes ejecutar el incluido cuaderno jupyter, importe datos IMDB a su proyecto de búsqueda sin servidor y ejecute los siguientes ejemplos usted mismo.
Las configuraciones de alto nivel son:
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "standard": {
- "query": {
- "term": {
- "overview": "clueless"
- }
- }
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "knn": {
- "field": "overview_dense",
- "query_vector_builder": {
- "text_embedding": {
- "model_id": ".multilingual-e5-small_linux-x86_64",
- "model_text": "clueless slackers"
- }
- },
- "k": 5,
- "num_candidates": 5
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "standard": {
- "query": {
- "text_expansion": {
- "overview_sparse": {
- "model_id": ".elser_model_2_linux-x86_64",
- "model_text": "clueless slackers"
- }
- }
- }
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "rrf": {
- "retrievers": [
- {
- "standard": {
- "query": {
- "term": {
- "overview": "clueless slackers"
- }
- }
- }
- },
- {
- "knn": {
- "field": "overview_dense",
- "query_vector_builder": {
- "text_embedding": {
- "model_id": ".multilingual-e5-small_linux-x86_64",
- "model_text": "clueless slackers"
- }
- },
- "k": 5,
- "num_candidates": 5
- }
- },
- {
- "standard": {
- "query": {
- "text_expansion": {
- "overview_sparse": {
- "model_id": ".elser_model_2_linux-x86_64",
- "model_text": "clueless slackers"
- }
- }
- }
- }
- }
- ],
- "rank_window_size": 5,
- "rank_constant": 1
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
El recuperador tiene ciertas limitaciones que los usuarios deben tener en cuenta. Por ejemplo, el uso de un recuperador compuesto permite consultar solo elementos. Esto obliga a una separación más clara de las preocupaciones y evita la complejidad que conlleva el anidamiento excesivo o la configuración independiente. Además, los perros perdigueros secundarios no deben utilizar elementos que restrinjan a un perro perdiguero compuesto a ser parte de un árbol de perros perdigueros.
Estas restricciones mejoran el rendimiento y la componibilidad incluso cuando se utilizan estrategias de recuperación complejas.
El recuperador se lanza inicialmente como una vista previa de la tecnología, por lo que su API está sujeta a cambios.
Los buscadores representan un importante paso adelante en la funcionalidad de búsqueda y la facilidad de uso de Elasticsearch. Se pueden encadenar en forma de canalización, donde cada recuperador aplica su lógica y pasa los resultados al siguiente elemento de la cadena. Los recuperadores pueden mejorar significativamente la experiencia de búsqueda al permitir operaciones de búsqueda más estructuradas, flexibles y eficientes.
Los siguientes recursos proporcionan más detalles sobre los perros perdigueros.
¡Pruebe el código anterior usted mismo!Tu puedes corrercuaderno jupyter adjunto, importe datos IMDB al proyecto Elastic Serverless Search.
¿Listo para probarlo tú mismo?comenzarPrueba gratis。
¿Quieres obtener la certificación Elastic?Descúbrelo la próxima vezFormación de ingenieros de Elasticsearch¡Cuándo empezar!