2016-12-21 131 views
0

我正在使用PHP客戶端。 我可以搜索沒有問題。Elasticsearch PHP客戶端 - 錯誤

我的問題是越來越多的建議。 這裏是我的代碼:

$json = ' 
POST /my_search_engine/_suggest 
{ 
    "my_engine":{ 
    "text":"'.$keyword.'", 
    "completion":{ 
     "field":"title_suggest" 
    } 
    } 
}'; 

$params ['body'] = $json; 
$response = $client->suggest ($params); 

這裏是堆棧跟蹤:

致命錯誤:未捕獲的異常 'Elasticsearch \ COMMON \例外\ BadRequest400Exception' 有消息 「{"錯誤" :{" root_cause ":[{012Btype ":" parse_exception ","原因":"失敗 導出 xcontent "}],"類型":" parse_exception ","原因":"失敗 導出xcontent "},"狀態":400}」中 /無功/網絡/ ATS -site-lib/ats-site-thoracic/web/app/es_search/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php:681 堆棧跟蹤:
#0/var/www/ats-site -lib/ATS-站點胸/網絡/應用/ es_search /供應商/ elasticsearch/elasticsearch/SRC/Elasticsearch /連接/ C onnection.php(659): Elasticsearch \ Connections \ Connection- > tryDeserializeError(Array, 'Elasticsearch \ C ...')
#1/var/www/ats-site-lib/ats-site-thoracic/(579): Elasticsearch \ Connections \ Connection- > tryDeserialize400Error(Array)
#2/var/www/ats-site-web/app/es_search/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php lib/ats-site-thoracic/web/app/es_search/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(261): Elasticsearch in /var/www/ats-site-lib/ats -site-thoracic/web/app/es_search/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php 在線

這裏是一個文件的 「title_suggest」 完成現場的樣子。我正在存儲一組關鍵字。也許這是問題? :

「title_suggest」: 「會員」, 「更新」 ]

+2

你需要從你的'$ json'變量刪除線'POST/my_search_engine/_suggest'。 – Val

+0

謝謝!那就是訣竅。我希望是如此簡單。 –

回答

0

我不得不做出的JSON有效通過從字符串除去POST /my_search_engine/_suggest。由於@val

這是最終的結果:

$json = ' 
{ 
    "thoracic":{ 
    "text":"'.$keyword.'", 
    "completion":{ 
     "field":"title_suggest" 
    } 
    } 
}';