2017-03-19 2 views
0

hier ist eine einfache Frage:Wie man einen Satz analysieren, wenn Analysator innerhalb einer Eigenschaft Mapping gegeben - Elasticsearch

Normalerweise, wenn ich den Analysator außerhalb des Mappings geben Abfrage ich den Satz wie:

POST three_in_one_index4/_analyze 
{ 
    "analyzer": "english_lower", 
    "text": "<p>lorem ipsum dolor sit amet.</p>"  
} 
jetzt

i gibt den Analysator innerhalb der Abbildung wie:

"mappings": { 
    "column": { 
     "properties": { 
     "article1": { 
      "type": "text", 
      "analyzer": "english_lower" 
     }, 
     "article2": { 
      "type": "text", 
      "analyzer": "latin_lower" 
     }, 
     "article3": { 
      "type": "text", 
      "analyzer": "latinstem_and_englishlower" 
     } 
     } 
    } 
    } 

So, jetzt, wie die Analyse sein sollte?

Ich bin mir ziemlich sicher, dass unten funktioniert nicht als das, was ich vorhabe zu tun.

POST three_in_one_index4/_analyze 
{ 
    "analyzer": "english_lower", 
    "text": "<p>lorem ipsum dolor sit amet.</p>"  
} 
+1

_analyze wird verwendet, um genau zu wissen, wie der Analysator funktioniert. ES wird den Analysator, den Sie in der Zuordnung angeben, auf die entsprechende Eigenschaft in der Json anwenden, die Sie indizieren werden. Ich verstehe nicht genau, was du machen willst. – angelcervera

+0

Soweit ich von Ihrem Kommentar, der Analysator innerhalb des Mappings angibt, nicht den Weg zu/_analyze das ändert. okay, wenn es verstehen würde, was ich getan habe, ist es ok für mich, danke. @angelcervera – nsarchar

Antwort

1

Wenn Sie die Token auf der Basis der Analysator für ein Feld analysieren möchten, wie in Ihrem Mapping definiert, dann können Sie tun es:

curl -XGET 'localhost:9200/three_in_one_index4/_analyze' -d ' 
{ 
    "field" : "article1", 
    "text" : "<p>lorem ipsum dolor sit amet.</p>" 
}' 

Wird die Analyse dazu führen, happen basierend auf dem in konfigurierten Analysator das Mapping für article1 (und falls nicht, der Standard-Index-Analysator).

+0

Das ist, was ich gefragt habe, danke. – nsarchar

+1

Der Effekt dieses Ansatzes ist der gleiche, der den Analysator spezifiziert, plus das Risiko, dass, wenn Sie einen Tippfehler im Feldnamen haben, der Standardanalysator angewendet wird und verwirrend sein könnte. IMO Wenn Sie einen Analysator testen möchten, ist Ihr erster Ansatz besser. Diese Option ist gut, um das Mapping zu überprüfen. – angelcervera

Verwandte Themen