Saltar al contenido

Elasticsearch cómo usar multi_match con comodín

Luego de consultar con expertos en esta materia, programadores de diversas áreas y maestros dimos con la solución a la cuestión y la plasmamos en este post.

Solución:

Alternativamente, podría usar un query_string consulta con comodines.

"query": 
    "query_string": 
        "query": "*mar*",
        "fields": ["user.name", "user.surname"]
    

Esto será más lento que usar un filtro nGram en tiempo de indexación (vea mi otra respuesta), pero si está buscando una solución rápida y sucia…

Además, no estoy seguro acerca de su mapeo, pero si está usando user.name en lugar de name su mapeo debe verse así:

"your_type_name_here": 
    "properties": 
        "user": 
            "type": "object",
            "properties": 
                "name": 
                    "type": "string"
                ,
                "surname": 
                    "type": "string"
                
            
        
    

Tal consulta funcionó para mí:


  "query": 
    "filtered": 
      "query": 
        "match_all": 
      ,
      "filter": 
        "bool": 
          "should": [
            "query": "wildcard": "user.name": "value": "*mar*",
            "query": "wildcard": "user.surname": "value": "*mar*"
          ]
        
      
    
  

Similar a lo que estás haciendo, excepto que en mi caso podría haber diferentes máscaras para diferentes campos.

Acabo de hacer esto ahora:

GET _search 
    "query": 
        "bool": 
            "must": [
                
                    "range": 
                        "theDate": 
                            "gte": "2014-01-01",
                            "lte": "2014-12-31"
                        
                    
                ,
                
                    "match" : 
                        "Country": "USA"
                    
                
            ],
            "should": [
                
                    "wildcard" :  "Id_A" : "0*" 
                ,
                
                    "wildcard" :  "Id_B" : "0*" 
                
            ],"minimum_number_should_match": 1
        
    

Reseñas y calificaciones

Agradecemos que quieras añadir valor a nuestro contenido cooperando tu veteranía en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *