这是文档,quickstart.html
以下是问题的截图:


编辑:
例如,我想在下面的示例中获得搜索结果,如何编写控制器?
意见:
<html>
<head>
<meta charset="utf-8">
<link href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/tether/1.3.2/css/tether.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<nav class="navbar navbar-light bg-faded">
<a class="navbar-brand" href="#">Navbar</a>
<ul class="nav navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
</ul>
<form class="form-inline pull-xs-right">
<input class="form-control" type="text" placeholder="Search">
<button class="btn btn-success-outline" type="submit">Search</button>
</form>
</nav>
</div>
<script src="https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/tether/1.3.2/js/tether.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.2/js/bootstrap.min.js"></script>
</body>
</html>路线:
<?php
Route::group(['middleware' => 'web'], function () {
Route::resource('/search', 'SearchController');
});主计长:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class SearchController extends Controller
{
public function index()
{
//
}
public function create()
{
//
}
public function store(Request $request)
{
//
}
public function show($id)
{
//
}
public function edit($id)
{
//
}
public function update(Request $request, $id)
{
//
}
public function destroy($id)
{
//
}
}Model:Article.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
protected $fillable = [
'title', 'content'
];
}发布于 2016-06-09 09:41:11
在我看来,他们似乎只提供了有关如何安装composer的说明,但您仍然需要使用以下命令来实际要求附带composer的包:
composer require elasticsearch/elasticsearch如果您运行composer安装,应该自动安装它,以便您可以在任何地方调用它。从那时起,您可以在需要的地方实例化。
“左边的代码”是一个返回响应,您正在得到它是elasticsearch转换成一个php数组。
要真正站起来跑步,你需要:
$client = Elasticsearch\ClientBuilder::create()->build();
$params = [
'index' => 'my_index',
'type' => 'my_type',
'id' => 'my_id',
'body' => ['testField' => 'abc']
];
$response = $client->index($params);
print_r($response);上面的内容应该是您所需要的,您需要将params更改为您的设置,将主体更改为您的搜索查询。
编辑
查看composer.json编辑,因此您实际上需要编写器要求,因为它已经在文件中了。简单地说"composer安装“就足够了。
这就是我很快就发现的,我尝试了索引方法,它运行得很好。在本例中,我仍然拥有一个索引名为“节点”的elasticsearch服务器,以及一种需要根据您的个人elasticsearch服务器更改的“假期”类型。当然,这里的逻辑是有一种类型的“用户”。
class UsersController extends Controller
{
// the main elasticsearch instance created with the constructor
protected $client;
public function __construct() {
$hosts = [
// since I am using homestead I have to refer to the ip address of my host machine on which I have installed
// elasticcsearch, otherwise the default localhost option will point to homestead localhost
'192.168.178.10:9200'
];
$this->client = \Elasticsearch\ClientBuilder::create()->setHosts($hosts)->build();
}
public function index()
{
$params = [
'index' => 'node',
'type' => 'vacation',
'body' => [
'query' => [
'match_all' => []
]
]
];
$response = $this->client->search($params);
print_r($response);
}
public function create()
{
$params = [
'index' => 'node',
'type' => 'vacation',
'id' => '1029',
'body' => [
'query' => [
'match_all' => []
]
]
];
$response = $this->client->index($params);
print_r($response);
}
}elasticsearch文档拥有所有用于更新、删除、索引和搜索的设置,这些设置都有完整的文档记录,因此只需为每个资源方法实现这些设置。
如果你想要这样做的话,还有很大的改进空间,并且要把它干净利落地实现。但这至少能让你走。一个更好的选择是为Elasticsearch客户端构建器创建一个服务提供者,并通过键入提示将其插入到您的UsersController中,但我将由您决定。
祝好运。
https://stackoverflow.com/questions/37706809
复制相似问题