2017-04-22 2 views
0

Ich habe ein Problem mit der Analyse von Pipe "|" Charakter in elasticsearch. Wenn der Datensatz Sonderzeichen enthält, werden keine Ergebnisdaten angezeigt. Unterhalb meiner AnfrageElasticSearch Parsing Sonderzeichen

{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "term": { 
      "username": "john|[email protected]" 
      } 
     } 
     ], 
     "must_not": [], 
     "should": [] 
    } 
    }, 

habe ich versucht, den Einsatz "tokenizer":"uax_url_email", aber nicht

+0

Können Sie ein Beispiel-Dokument zur Verfügung stellen, die die genaue Bezeichnung ('john | doe @ group.net') entsprechen sollte ? – avr

+0

Ich habe Datenbanktabelle, die Benutzernamen wie john|[email protected] enthalten, und ich muss dies mit elasticsearh über obige Abfrage auswählen. Das ist alles –

+0

Wenn Sie ES 5.x und die Standardzuordnung für das Feld 'username' verwenden, ersetzen Sie diese Zeile' "username": "john|[email protected]" 'mit' "username.keyword": "john | doe @group.net "und versuche es sollte funktionieren. – avr

Antwort

1

mit query_string versuchen arbeiten, seine Arbeit .Ich in meinem System mit Standard-Standard-Analysator query_string zu verwenden Versuchen getestet haben. Es ist sehr mächtig in Teil-Suche in ES, überprüfen Sie meine Antwort link: -

: -

{ 

    "query": { 
    "query_string": { 
     "fields" : ["username"] , 
     "query": "john|[email protected]" 
    } 
    } 
} 
Verwandte Themen