簡體   English   中英

elasticsearch對於相同查詢的瀏覽器和php客戶端的不同結果

[英]elasticsearch different result of browser and php client for same query

我在下面運行此查詢,並檢查返回144條記錄的結果,但是當我使用瀏覽器運行查詢時,它不返回任何內容。 我知道結果在任何情況下都必須相同,無論如何,此api都會像這樣轉換查詢,但是結果不同並且無法理解原因

$elasticSearch = new Elasticsearch\Client(['hosts' => ['localhost:9200']]);
        $params = array();
        $json = '{
                    "query" : {
                        "match" : {
                            "logdata" : "_client_"
                        }
                    }
                    }';
        $params['body'] = $json;
        $params['index'] = 'accesslog_index';
        $params['size'] = 400;
        $query = $elasticSearch->search($params);

在此處輸入圖片說明

如果未顯示圖像:瀏覽器中的URL: http:// localhost:9200 / accesslog_index / _search?pretty = true&q = logdata_client_ &size = 100,結果:

{
  "took" : 3,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 72,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "accesslog_index",
      "_type" : "acceslogs_june",
      "_id" : "AU6R267Wy2aRfwCng6-y",

...

這樣做的主要原因是因為兩個查詢不相等。

在查詢DSL,為等效查詢http://localhost:9200/accesslog_index/_search?q=logdata:*_client_*是不是match查詢,但一個query_string查詢,例如:

{
    "query": {
        "query_string" : {
            "default_field" : "logdata",
            "query" : "*_client_*"
        }
    }
}

官方文檔

查詢字符串查詢和搜索API中的q查詢字符串參數使用查詢字符串“ mini-language”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM