2017-06-08 2 views
0

Um mit ElastickSearch zu verbinden, verwende ich basemkhirat/elasticsearch. Das folgende Problem wurde gebildet: mit dieser Abfrage diese Methode ("google.com") Links in IndexElasticSearch 5.4.0 Abfrage (PHP)

sucht
ES::type("links")->search("google.com")->get(); 

I 56 Links ist (zum Beispiel) gefunden, aber wenn ich Abfrage verwendet "google"

ES::type("links")->search("google")->get(); 

Ich bin nichts gefunden (0). Was ist mein Problem?

JSON Abfrage, Hexe durch die Suche erstellt:

{ 
    "index":"links", 
    "type":"link", 
    "body": { 
     "query": { 
      "bool": { 
       "must": [ 
        { 
         "query_string": { 
          "query":"google.com" 
         } 
        } 
       ] 
      } 
     } 
    }, 
    "from":0, 
    "size":10000 
} 

P. S: In Kibana ich die gleichen Dinge bin gerade.

+0

ist die Suche nach passenden Stichen? oder mit Wild Cards? – rtfm

+0

Genau, ich weiß nicht, aber diese Methode ist sehr wahrscheinlich ähnlich wie die Suchzeile in Kibana Web-Interface –

+0

gut ist Ihr Job, um herauszufinden, der Code, den Sie verwenden, nicht unser – rtfm

Antwort

0

Ich habe nicht in die Bibliothek, die Sie verwenden, geschaut, aber es sieht so aus, als würde eine Wildcard-Abfrage für Sie funktionieren. Es wird nicht gut funktionieren, wenn Sie viele Daten haben oder wenn Sie den Platzhalter zu stark verwenden.

So etwas könnte für Sie arbeiten - lassen Sie mich wissen, wie es geht.

ES::type("links")->search("google*")->get(); 

PS, wenn ich in der Lage wäre, würde ich sah in der Bibliothek haben und versucht, wenn sie Präfix Abfragen unterstützen, um herauszufinden. Ich gehe davon aus, dass sie es sein müssen - vielleicht wollen sie ein paar Stunden damit verbringen, dort hinzuschauen.