2016-09-19 3 views
0

Etwas sehr seltsames passiert mit ES JS Client. client.search() -Methode scheint richtig zu funktionieren, Index und Suche Daten funktionieren ordnungsgemäß, aber wenn ein Neustart der elasticsearch.bat dann der Client funktioniert nicht mehr. Ich meine, client.search gibt mir 0 Treffer mit demselben Code. Aber wenn ich mit einem Rest-Client suche, finde ich alle verfügbaren Dokumente im Index.ElasticSearch und suchen Dokumente unvorhersehbar

Dies wird die Abbildung mit diesem http://localhost:9200/yojuego/_mappings GET:

{ 
    "yojuego": { 
     "mappings": { 
      "user": { 
      "properties": { 
       "password": { 
        "type": "string" 
        } 
       "type": { 
        "type": "string" 
        } 
       "userid": { 
        "type": "string" 
        } 
       } 
      } 
     } 
    } 
} 

Hier ist, wie ich für die Informationen von NodeJS freu:

this.client.search({ 
    index: "yojuego", 
    type: "user", 
    body: { 
     "query": { 
      "filtered": { 
       "filter": { 
        "bool": { 
         "must": [ 
          { "term": { "userid": criteria } }, 
          { "term": { "type": "yojuego" } } 
         ] 
        } 
       } 
      } 
     } 
    } 
}, (error, response, status) => { 
    if (error) { 
     //I have no error 
    } 
    else { 
     //Here is where I have 0 hits in response.hits.hits 
    } 
}); 

Verwandte Beitrag:

ich viele Antworten erhalten haben, arbeiteten alle zunächst richtig, aber alle von ihnen dann gestoppt

Frameworks arbeiten Ich verwende:

  • Elasticsearch 2.4. 0
  • Node.js 6.3.0
  • ElasticSearch.js 11.0.1

Wie habe ich ElasticSearch installiert? Einfach von ES WebSite herunterladen, entpacken und elasticsearch.bat ausführen (ich verwende Windows 7)

Das Problem ist, dass ES nicht mehr funktioniert, nachdem der ES-Dienst zurückgesetzt wurde. Ich bin mir ziemlich sicher, dass ich etwas falsch mache, aber ich kann nicht erkennen, wo und was und warum ES Service Search nicht mehr funktioniert.

Wenn ich sage "stop working" sage ich, dass die Suchmethode von ES js Client 0 Übereinstimmungen mit der gleichen Abfrage abrufen, wie es gestern verwendet wurde.

Ich hoffe ich habe es klar erklärt. Danke.

PD:

Hier ist, wie ich es initializating Client:

var es = require('elasticsearch'); 
var client = new es.Client({ 
    host: 'http://localhost:9200', 
    log: 'info' 
}); 
+0

Können Sie Ihre Frage bearbeiten schließen, wie Sie einrichten und die Verbindung in Ihrem JS-Code initialisiert? –

+0

Fertig !!! Vielen Dank. –

+0

Was passiert, wenn Sie 'keepAlive: false' zur Client-Initialisierung hinzufügen? –

Antwort

0

Nun, nach zu viel Mühe habe ich festgestellt, dass das Problem in der Art, wie ich das Feld userId wurde Kartierung . Ich war forggeting es als not_analized zu markieren, so ist hier, wie es aussieht:

{ 
    "yojuego": { 
     "mappings": { 
      "user": { 
      "properties": { 
       "password": { 
        "type": "string" 
        } 
       "type": { 
        "type": "string", 
        "index": "not_analyzed" 
        } 
       "userid": { 
        "type": "string", 
        "index": "not_analyzed" 
        } 
       } 
      } 
     } 
    } 
} 
Verwandte Themen