私はそれをループして弾力的にインデックスを付けるjsonファイルを持っています。その後、自分のデータを検索できるようにしたいと考えています。elasticsearchのphp全文検索
これは私のJSONファイルです:
https://github.com/mhndev/iran-geography/blob/master/tehran_intersection.json
次のようになります。私のクエリがあるとき
{
"RECORDS":[
{
"first":{
"name":"ابن بابویه",
"slug":"Ibn Babawayh"
},
"second":{
"name":"میرعابدینی",
"slug":"Myrabdyny"
},
"latitude":"35.601605",
"longitude":"51.444208",
"type":"intersection",
"id":1,
"search":"ابن بابویه میرعابدینی,Ibn Babawayh Myrabdyny,ابن بابویه تقاطع میرعابدینی,Ibn Babawayh taghato Myrabdyny",
"name":"ابن بابویه میرعابدینی",
"slug":"Ibn Babawayh Myrabdyny"
},
...
]
}
: "ミール" は、私は私の結果は「mirabediniを持っていたレコードであることを期待"、" mirdamad "、" samir "、およびこの文字列を含む他のすべての単語。
んだけど、まさに「ミール」
ある単語を取得し、これは、検索のための私のPHPコードです:
$fields = ['search','slug'];
$params = [
'index' => 'digipeyk',
'type' => 'location',
'body' => [
'query' => [
'match' => [
'fields' => $fields,
'query' => $_GET['query']
]
],
'from' => 0,
'size' => 10
]
];
$client = ClientBuilder::create()->build();
$response = $client->search($params);
とインデックスの文書のためにも、この私のPHPコード。
$client = ClientBuilder::create()->build();
$deleteParams = ['index' => 'digipeyk'];
$response = $client->indices()->delete($deleteParams);
$intersections = json_decode(file_get_contents('data/tehran_intersection.json'), true)['RECORDS'];
$i = 1;
foreach($intersections as $intersection){
echo $i."\n";
$params['index'] = 'digipeyk';
$params['id'] = $intersection['id'];
$params['type'] = 'location';
$params['body'] = $intersection;
$response = $client->index($params);
$i++;
}
私はPHPの7を使用して2.3
、ない運、このような :リンク以下の弾性訪問中のワイルドカードの詳細については
「クエリ」=>「*」$。 _GET ['query']。 "*" – mhndev