phpdots / elasticsearchtailor
使用 elasticsearch 包进行数据搜索
Requires
This package is auto-updated.
Last update: 2024-09-09 15:26:25 UTC
README
通过 Elastic Search 包进行数据搜索
安装
使用以下命令安装此包:
composer require phpdots/elasticsearchtailor
服务提供者将自动通过包发现进行注册。
如果您不使用自动发现,则应在 config/app.php 中的 providers 数组中添加服务提供者。
// existing providers... PHPDots\ElasticSearchTailor\ElasticSearchTailorServiceProvider::class,
一旦安装了包,您应该发布配置。
php artisan vendor:publish --provider="PHPDots\ElasticSearchTailor\ElasticSearchTailorServiceProvider"
您可以在配置文件 config\elasticcConfig.php 中设置您的节点。
<?php // Your nodes resides here. return array( 'hosts' => ['localhost:8000'], ); ?>
使用方法
首先,您需要在控制器或模型中导入我们的类。
use PHPDots\ElasticSearchTailor\Elastic;
然后,您需要创建类的实例。例如
$elastic = new Elastic();
现在,您已经准备好使用我们的函数。要创建一个新索引,我们在 elasticsearch 中有一个 createIndex 函数。
createIndex($name='default', $shards=1, $replicas=1).
它将从 elasticsearch 获取确认。
例如
$result= $this->elastic->createIndex($index, 1, 1);
要将映射放入 elasticsearch 中的类型/表,有一个 putSettings 函数。
putSettings($index='default', $mappings, $type).
它也将从 elasticsearch 获取确认。$mappings 必须是有效设置的数组。
例如
$result = $this->elastic->putSettings($index, $mapping, $type);
对于搜索,我们刚刚实现了一些字段的搜索,我们可以在以后进行改进。
search($index,$mark_text,$page = 1, $length = 10, $sort= 1, $exact = 0).
在这里,我们有 $mark_text 用于搜索关键字和 $index 用于在特定索引中进行搜索。我们还添加了 $page 和 $length 用于分页。例如,如果 $page=1 且 $length=20,则结果将返回从 0 开始的 20 条记录。我们有 $exact,如果您想使用确切单词。我们有 $sort,它将根据文件日期或申请日期(降序)对结果文档进行排序。默认值为 1。您始终可以将其关闭。
例如
$result = $this->elastic->search('uspto','mark_text', 1, 10, 1, 1);
这是一个示例返回对象
{
"took" : 67,
"timed_out" : false,
"_shards" : {
"total" : 2,
"successful" : 2,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 4582,
"max_score" : null,
"hits" : [
{
"_index" : "uspto",
"_type" : "case_file",
"_id" : "9434cb7b902f26f8b56aacb92bf42e74",
"_score" : null,
"_source" : {
"id" : "9434cb7b902f26f8b56aacb92bf42e74",
"did" : 23120213,
"mark_identification" : "ECHOS CALLING",
"serial_number" : "88402444.00",
"registration_number" : "0000000",
"filing_date" : 20190425,
"registration_date" : null,
"status_code" : "630",
"primary_code" : "033",
"case_file_owners_id" : 22640023,
"party_name" : "Ste. Michelle Wine Estates Ltd."
},
"sort" : [
23120213
]
},...
如果有任何错误,search 函数将仅返回 null array。
我们还添加了一个在所有索引中进行搜索的函数。
searchAll($mark_text,$page = 1, $length = 10, $sort= 1, $exact = 0).
它的工作方式与 search 函数相同,但会从所有索引中获取记录。
我们希望这能帮助您。