2016-03-21 7 views
0

Ich benutze mysql um Benutzerdaten zu speichern, und suche die Daten von Elasticsearch. Für mysql habe ich ein benutzerdefiniertes Feld, in diesem Feld können Daten im JSON-Format gespeichert werden.Elasticsearch: Wie suche ich ein user_defined Feld?

die Beispieldaten wie folgt aus:

data1 = 
{ 
"name" : "test1", 
"age": 10, 
"user_defined": { 
    "a" : "aaa", 
    "b" : "bbb", 
    "c" : "ccc", 
    ..... 
    } 
} 

data2 = 
{ 
"name" : "test2", 
"age": 20, 
"user_defined": { 
    "d" : "ddd", 
    "e" : "eee", 
    "f" : "fff", 
    ..... 
    } 
} 

Für user_defined Feld wird die Anzahl der Tasten nicht festgelegt, alle die Art der Werte Zeichenfolge, ich jede Taste hoffen gesucht werden kann, wie die Zuordnung definieren ? Wie sucht man diese Art von Daten von Elasticsearch?

Jeder hat eine gute Idee?

Antwort

1

Sie die Abbildung des user_defined als "type": "object", wie diese definieren: sie Ihre Dokumente

PUT your_index 
{ 
    "mappings": { 
    "your_type": { 
     "properties": { 
     "name": { 
      "type": "string" 
     }, 
     "age": { 
      "type": "integer" 
     }, 
     "user_defined": { 
      "type": "object" 
     } 
     } 
    } 
    } 
} 

Danach können Sie indizieren und durchsuchen leicht mit dem Query DSL

POST your_index/_search 
{ 
    "query": { 
    "match" : { 
     "user_defined.a" : "aaa" 
    } 
    } 
} 
+0

Danke für die Hilfe! Meinst du ich muss ES nicht die Details von 'user_defined' melden? – pangpang

+0

Abhängig von der Art der Abfragen, die Sie anschließend für diese Werte ausführen möchten, müssen Sie dies nicht tun. ES wird es für Sie herausfinden, und da alle Werte Zeichenfolge sind, wird es einfach sein. – Val

+0

Ich habe ein Problem gefunden. Wenn .'a' ein chinesisches Zeichen ist, kann ich nicht nach 'user_defined.a' suchen. – pangpang

-1

Jedes Feld in einem Dokument in Elasticsearch ist standardmäßig indiziert und durchsuchbar.

Elasticsearch bietet eine Search Lite API und eine Query DSL für die Suche.

+0

Ich denke, es ist nicht der Fall ist eine Antwort – pangpang

Verwandte Themen