phpdots/elasticsearchtailor

使用 elasticsearch 包进行数据搜索

dev-master 2019-10-09 04:43 UTC

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 函数相同,但会从所有索引中获取记录。

我们希望这能帮助您。