2017-06-08 13 views
0

ElastickSearchに接続するには、basemkhirat/elasticsearchを使用します。次のような問題が形成された:インデックスElasticSearch 5.4.0 query(PHP)

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

内のリンクを検索するには、このクエリ(「google.com」)と、このメソッドを使用して「Googleの」私は(例えば)56個のリンクを見つけたんだけど、私は、クエリを使用した場合

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

私は何も見つかりませんでした(0)。私の問題は何ですか?

JSONクエリ、検索によって作成された魔女:

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

P.S:Kibanaでは、私は同じものを見ています。

+0

は完全一致の検索ですか?ワイルドカードを使用していますか? – rtfm

+0

正確には分かりませんが、この方法はKibanaウェブインターフェースの検索行に似ている可能性があります –

+0

私たちではなく、あなたが使っているコードを見つけ出すことはあなたの仕事です – rtfm

答えて

0

私はあなたが使用しているライブラリを調べていませんが、ワイルドカードによるクエリがうまくいくように見えます。大量のデータがある場合や、ワイルドカードを過度に使用した場合は、優れたパフォーマンスは得られません。

このような何かがあなたのために働くかもしれません - それがどうなるか教えてください。

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

PS私があなたの立場にいた場合、私はライブラリを調べて、プレフィックスクエリをサポートしているかどうかを調べようとしました。私は彼らがそうしなければならないと仮定しています - そこを見ている時間のカップルを過ごすことができるかもしれません。