phpelasticsearch
『壹』 elasticsearch php怎麼判斷某個索引是否存在
Elasticsearch有幾個核心概念。從一開始理解這些概念會對整個學習過程有莫大的幫助。 接近實時(NRT) Elasticsearch是一個接近實時的搜索平台。這意味著,從索引一個文檔直到這個文檔能夠被搜索到有一個輕微的延遲(通常是1秒)
『貳』 php elasticsearch 需要釋放資源嗎
如果你的資料庫搭建好了就簡單了,用PHP來連接你的資料庫!$link = mysql_connect('localhost','user','pwd');//你的資料庫用戶名和密碼mysql_query('set names utf8'); 設置字元集mysql_select_db('db');//選擇你的資料庫$sql="這里是你的sql語句";mysql_query($sql);//發送sql語句mysql_close();//關閉連接
這個問題後盾人剛剛講解,我就是在哪裡學會的,樓主可以去學習
『叄』 thinkphp5使用elasticsearch聚合的時候報錯
可能寫錯了。
希望我的回答可以幫到你,有什麼不懂可以追問。
『肆』 elasticsearch 聚合統計 分頁怎麼做 php
當數據量過大時,可能會導致各種各樣的問題發生,例如:伺服器資源被耗盡,因數據傳輸量過大而使處理超時,等等。最終都會導致查詢無法完成。
解決這個問題的一個策略就是「分頁查詢」,也就是說不要一次性查詢所有的數據,每次只查詢一「頁「的數據。這樣分批次地進行處理,可以呈現出很好的用戶體驗,對伺服器資源的消耗也不大。
打一個比方,有很多很多人要過河,而只有一條船擺渡。若讓所有人都上船,肯定會導致沉船(資源耗盡);若換一條超大的船,除了換船要很高的成本外,上船下船也要耗費很長時間。
所以最好的解決方法是,根據船的容量,每次只上一部分人。等這一船人過河以後,再擺渡下一批人。
『伍』 php中文搜索引擎有Sphinx和elasticsearch,他們有啥不一樣啊
Sphinx 對中文支持不怎麼好,之前的中文版本很低 很久沒有更新了。。 在多線程搜索方面容易程序崩潰。。如果數據不多到還不錯 數據多了的話容易出錯。ElasticSearch有更強的橫向擴展能力和高可用性
『陸』 php elasticsearch使用compser安裝報錯在群集中找不到活動節點
應該是es的配置文的問題
『柒』 php怎麼調用elasticsearch
ElasticSearch是一個基於Lucene的穩定的、分布式、RESTFul的搜索引擎。其實所謂的RestFul就是它提供URL供你調用(建立索引和進行檢索),不過直接這樣使用實在是太兇殘了。所以,它也提供了一系列client包,相當於將curl請求封裝了,client包支持的語言包括Java、PHP、Python、Ruby和Perl等等。
PHP版的client包叫做elasticsearch-php,可以在Git_hub上下載。地址如下:https://github.com/elasticsearch/elasticsearch
要使用elasticsearch-php有如下三個要求:
1.PHP的版本在5.3.9以上,我用的是PHP5.3.23
2.在項目中使用Composor來管理包,下載地址如下:https://getcomposer.org/
3.在php.ini中開啟curl和openssl
要使用elasticsearch,需要JDK的版本大於6,最好選擇8吧,因為7有漏洞....
截一張需要的包圖:
啟動elasticsearch很簡單,直接進入解壓目錄,運行elasticsearch.bat就可以了,看到最後console輸出start,就啟動成功了。
接下來介紹如何使用elasticsearch-php:
1.新建一個文件夾取名為test,此為項目文件夾
2.在裡面放入一個命名為composer.json的文件,文件內容為:
{
"require":{
"elasticsearch/elasticsearch" : "~1.2"
}
}
3.將composer.phar拷貝到test文件夾中,cd 到test文件夾,輸入命令:php composer.phar install --no-dev 等待安裝成功
這個時候test文件夾下面應該會出現vendor文件夾,裡面有elasticsearch、composer、guzzle等文件夾,很多內容
4.這個時候,就可以使用elasticsearch進行建立索引和進行檢索了
<?php
require_once('vendor/autoload.php');
function get_conn(){
$host = 'ip';
$dbname = 'dbname';
$user = 'user';
$passwd = 'passwd';
$conn = new PDO("pgsql:dbname=$dbname;host=$host",$user,$passwd);
return $conn;
}
function create_index(){
//Elastic search php client
$client = new Elasticsearch\Client();
$sql = "SELECT * FROM log";
$conn = get_conn();
$stmt = $conn->query($sql);
$rtn = $stmt->fetchAll();
//delete index which already created
$params = array();
$params['index'] = 'log_index';
$client->indices()->delete($params);
//create index on log_date,src_ip,dest_ip
$rtnCount = count($rtn);
for($i=0;$i<$rtnCount;$i++){
$params = array();
$params['body'] = array(
'log_date' => $rtn[$i]['log_date'],
'src_ip' => $rtn[$i]['src_ip'],
'dest_ip' => $rtn[$i]['dest_ip']
);
$params['index'] = 'log_index';
$params['type'] = 'log_type';
//Document will be indexed to log_index/log_type/autogenerate_id
$client->index($params);
}
echo 'create index done!';
}
function search(){
//Elastic search php client
$client = new Elasticsearch\Client();
$params = array();
$params['index'] = 'log_index';
$params['type'] = 'log_type';
$params['body']['query']['match']['src_ip'] = '1.122.33.141';
$rtn = $client->search($params);
var_mp($rtn);
}
set_time_limit(0);
//create_index();
search();
?>
『捌』 php curl 調用 elasticsearch 怎麼傳參
ElasticSearch是一個基於Lucene的穩定的、分布式、RESTFul的搜索引擎。其實所謂的RestFul就是它提供URL供你調用(建立索引和進行檢索),不過直接這樣使用實在是太兇殘了。所以,它也提供了一系列client包,相當於將curl請求封裝了,client包支持的語言包括Java、PHP、Python、Ruby和Perl等等。
PHP版的client包叫做elasticsearch-php,可以在Git_hub上下載。
要使用elasticsearch-php有如下三個要求:
1.PHP的版本在5.3.9以上,我用的是PHP5.3.23
2.在項目中使用Composor來管理包,下載地址如下:https://getcomposer.org/
3.在php.ini中開啟curl和openssl
要使用elasticsearch,需要JDK的版本大於6,最好選擇8吧,因為7有漏洞....
截一張需要的包圖:
啟動elasticsearch很簡單,直接進入解壓目錄,運行elasticsearch.bat就可以了,看到最後console輸出start,就啟動成功了。
接下來介紹如何使用elasticsearch-php:
1.新建一個文件夾取名為test,此為項目文件夾
2.在裡面放入一個命名為composer.json的文件,文件內容為:
[html] view plain
{
"require":{
"elasticsearch/elasticsearch" : "~1.2"
}
}
3.將composer.phar拷貝到test文件夾中,cd 到test文件夾,輸入命令:php composer.phar install --no-dev 等待安裝成功
這個時候test文件夾下面應該會出現vendor文件夾,裡面有elasticsearch、composer、guzzle等文件夾,很多內容
4.這個時候,就可以使用elasticsearch進行建立索引和進行檢索了
[php] view plain
<?php
require_once('vendor/autoload.php');
function get_conn(){
$host = 'ip';
$dbname = 'dbname';
$user = 'user';
$passwd = 'passwd';
$conn = new PDO("pgsql:dbname=$dbname;host=$host",$user,$passwd);
return $conn;
}
function create_index(){
//Elastic search php client
$client = new Elasticsearch\Client();
$sql = "SELECT * FROM log";
$conn = get_conn();
$stmt = $conn->query($sql);
$rtn = $stmt->fetchAll();
//delete index which already created
$params = array();
$params['index'] = 'log_index';
$client->indices()->delete($params);
//create index on log_date,src_ip,dest_ip
$rtnCount = count($rtn);
for($i=0;$i<$rtnCount;$i++){
$params = array();
$params['body'] = array(
'log_date' => $rtn[$i]['log_date'],
'src_ip' => $rtn[$i]['src_ip'],
'dest_ip' => $rtn[$i]['dest_ip']
);
$params['index'] = 'log_index';
$params['type'] = 'log_type';
//Document will be indexed to log_index/log_type/autogenerate_id
$client->index($params);
}
echo 'create index done!';
}
function search(){
//Elastic search php client
$client = new Elasticsearch\Client();
$params = array();
$params['index'] = 'log_index';
$params['type'] = 'log_type';
$params['body']['query']['match']['src_ip'] = '1.122.33.141';
$rtn = $client->search($params);
var_mp($rtn);
}
set_time_limit(0);
//create_index();
search();
?>
建立索引成功,可以看到「create index done!」
查詢成功,可以看到返回的結果數組。
『玖』 php 怎麼和elasticsearch
if(ch=='Y'||ch=='y')
exit(0);
break;
default:
printf("\nError:Sorry,there is no this service now!\n");
break;
}