[英]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.