2017-05-03 2 views
0

cartographie élastique actuel:phrase de recherche élastique correspondance exacte sans analizinig

"properties": { 

"content": { 

    "type": "text", 

     "term_vector":"with_positions_offsets", 

    "fields": { 

     "keyword": { 

      "type": "keyword", 

      "ignore_above": 256 

     } 

    }, 

    "analyzer": "russian" 

    }   
} 

champs « contenu » contient les résultats du site de rampants, exactement pages contenu de la balise « corps », dépouillé de tags. La tâche consiste à réaliser trois types de recherche pour ce champ. 1. Tous les mots spécifiés 2. Tous les mots spécifiés 3. Exactement dans le texte

Pour 1 cas - match_phrase Pour 2 cas - Match Pour 3 cas - il doit être match_phrase sans analizing, avec becouse « russe » analizer il trouve cette Phraze avec des fins différentes et déclinaisons

Essayé cette requête avec pas de chance:

"query": { 
"bool": { 
    "must": [ 
    { 
     "match_phrase": { 
      "content": { 
       "query": "some search phraze", 
     "analyzer": "keyword" 
     } 
     } 
    } 
    ] 
} 

Répondre

1

Pour exact match utilisation de requêtes Term Query. Ainsi, votre requête devrait ressembler à ceci:

GET _search 
{ 
    "query": { 
    "term" : { "content.keyword" : "some search phraze" } 
    } 
} 
+1

Aucun résultat trouvé. Hits = 0 – aleha

+0

pouvez-vous fournir un exemple de document? – avr

+0

Il s'agit de kilo-octets de texte. Il fait froid cent mots ou quelques milliers. – aleha

0

auto répondant

This réponse m'a beaucoup aidé

Ajout champ supplémentaire « brut » à problème résolu la propriété.

"properties": { 
    "content": { 
     "type": "text", 
     "term_vector":"with_positions_offsets", 
     "fields": { 
      "keyword": { 
       "type": "keyword", 
       "ignore_above": 256 
      }, 
      "raw": { 
       "type": "text", 
       "index": "analyzed" 
      } 
     }, 
    "analyzer": "russian" 
    }   
} 

requête de recherche ressemble à ceci:

"query": { 
    "bool": { 
     "must": [ 
      { 
       "match_phrase": { 
        "content.raw": { 
          "query": "some search phraze", 
        } 
       } 
      } 
     ] 
    }