liugj / lumen-xunsearch

Xunsearch 驱动器,用于 Laravel Scout。

v1.2.9 2018-06-07 11:56 UTC

This package is auto-updated.

Last update: 2024-09-25 19:47:10 UTC


README

Xunsearch 引擎,用于 Laravel Scout。

安装

您可以通过 composer 安装此软件包

composer require liugj/lumen-xunsearch

您必须在 bootstrap/app.php 的第 80 行配置中添加 Scout 服务提供者和软件包服务提供者

$app->register(Liugj\Xunsearch\XunsearchServiceProvider::class);

配置

通过编辑 config/scout.php 的第 62 行,将配置文件发布到您的项目中

    'xunsearch' => [
        'index'  => env('XUNSEARCH_INDEX_HOST', ''),
        'search' => env('XUNSEARCH_SEARCH_HOST', ''),
        'schema' => [
           'brand_index'=>app()->basePath()  .'/'. env('XUNSEARCH_SCHEMA_BRAND'),
        ]
    ],

将 Xunsearch 设置添加到 .env 文件中

SCOUT_DRIVER=xunsearch
XUNSEARCH_INDEX_HOST=127.0.0.1:8383
XUNSEARCH_SEARCH_HOST=127.0.0.1:8384
XUNSEARCH_SCHEMA_BRAND=config/brand.ini

使用

现在您可以使用 Laravel Scout,如官方文档所述

Where 子句

此引擎允许您添加更多高级的 "where" 子句。

  • addRange
   $users = App\User::search('Star Trek')
            ->where('age', new \Liugj\Xunsearch\Operators\RangeOperator(30,50))->get();
  • setCollapse
   $users = App\User::search('Star Trek')
            ->where('city', new \Liugj\Xunsearch\Operators\CollapseOperator($num = 10))->get();
  • setFuzzy
   $users = App\Users::search('Star Trek')
           ->where('**', new \Liugj\Xunsearch\Operators\FuzzyOperator($fuzzy = false))->get();
  • setFacets
   $users = App\Users::search('Star Trek')
            ->where('***', new \Liugj\Xunsearch\Operators\FacetsOperator(array('age','city')))->get();
  • addWeight
   $users = App\User::search('Star Trek')
   ->where('country', new \Liugj\Xunsearch\Operators\WeightOperator('US'))->get();

配置可搜索的数据

默认情况下,给定模型的整个 toArray 形式将被持久化到其搜索索引中。如果您想自定义同步到搜索索引的数据,您可以在模型上覆盖 toSearchableArray 方法

<?php

namespace App;

use Liugj\Xunsearch\Searchable;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use Searchable;

    /**
     * Get the indexable data array for the model.
     *
     * @return array
     */
    public function toSearchableArray()
    {
        $array = $this->toArray();

        // Customize array...

        return $array;
    }
}

##链接

感谢

许可证

MIT 许可证 (MIT)。