Download the PHP package taxusorg/xunsearch-laravel without Composer

On this page you can find all versions of the php package taxusorg/xunsearch-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package xunsearch-laravel

Laravel XunSearch

介绍

这个包是在 laravel/scout 的服务中添加拓展,使用 XunSearch 搜索 功能。

XunSearch 的安装,具体查看 XunSearch 的官方文档

laravel/scout 的安装和使用,查看 laravel/scout 的官方文档

项目地址

github 不稳定的时候可以上 gitee 代替。有问题可以创建 issues 反馈

安装

使用 composer

复制配置文件到配置目录,配置文件内容不多,而且可以在 .env 文件中设置。手动复制或者使用命令复制:

修改 scout 配置文件 config/scout.php,让 scout 使用 XunSearch 引擎

或者直接在 .env 文件中设置

修改 XunSearch 配置文件 config/xunsearch.php

或者直接在 .env 文件中设置需要修改的内容,没有特殊情况默认即可

使用

Model 中使用搜索功能,先引入 Searchable Trait,详见 Scout 使用文档

要使用 XunSearch, Model 还要实现指定接口。实现接口需要添加 xunSearchFieldsType 方法进行字段类型设置

每个字段可以设置 字段类型索引类型分词器。设置关键词已经在接口中定义常量,前缀分别为:

设置类型 前缀
字段类型 XUNSEARCHTYPE
索引类型 XUNSEARCHINDEX
分词器 XUNSEARCHTOKENIZER

设置的字段类型的具体效果,查看 XunSearch 官方文档

设置了分词器包含有参数时,通过设置 tokenizer_value 设置分词器参数。如果没有指定分词器,但设置了大于 0 的参数,则自动设置分词器为 XUNSEARCH_TOKENIZER_SCWS。都不设置则使用 XunSearch 默认分词器。

Model 的主键,例如 id,已被默认设为引擎的文档主键。 如果需要对 id 进行区间检索,把 id 的类型设为 self::XUNSEARCH_TYPE_NUMERIC。如果不需要对 id 进行检索,可以不添加 id 字段。

字段类型 self::XUNSEARCH_TYPE_TITLEself::XUNSEARCH_TYPE_BODY 只能分别设置一次。

检索

查询方法和 scout 相同。简单查询可以按照 laravel/scout 的官方文档 进行查询即可。

Model::search 方法返回 Builder 对象,在进行服务拓展时,已经对该对象注册了宏,可以获取到 XS 对象,自行调用查询功能。

已注册的宏

方法 描述
getXSTotal 获取该库中的总文档数
getXS 获取 Client 对象
getXSSearch 获取 XSSearch 对象
getXSIndex 获取 XSIndex 对象

Client 对象是对 XS 对象的包装,包含 XS 对象的属性和行为,可以当作 XS 对象使用。

注意: 通过 Builder 获取的 Client 对象是和 Builder 一对一绑定的。 如果 Client 没有被另外引用,当 Builder 被释放时 Client 和其中的 XS 对象也被释放。 如果同时存在多个 Builder,对分别获取的 Client 和 XS 对象的设置互不干扰。

检索结果

检索时使用 get 方法返回 Model 对象的集合,scout 已经对检索结果转换成 Model,而 raw 方法返回的是原始数据,为了灵活和方便,原始数据返回的是 Results 对象。

Results 对象是可遍历对象,遍历的内容为 XSDocument 对象。

同时,Results 对象可以调用 getModels 方法获取和 Builder::get 方法相同的内容。

Results 对象的方法

方法 描述
getIds 获取检索结果的主键集合
getModels 获取检索模型结果的 Collection 集合
getLazyModels 获取检索模型结果的 LazyCollection 集合
query 替换检索结果转换模型查询闭包
getTotal 获取检索的总数
toArray 获取检索结果的 XSDocument 数组

检索结果转换模型查询闭包

通过 Results 中的 getModelsgetLazyModels 方法,把搜索结果转换成 Model 集合时,可以传入闭包函数,对转换过程的查询进行控制。该闭包是一次性生效的。

传入 getModels 闭包类似于在查询过程中 query 方法指定查询闭包。但是,在 query 传入的闭包不是一次性生效的。而且,该闭包会临时被 getModels 方法传入的闭包替换。

如果需要在 Results 对象中永久替换查询闭包函数,使用 query 方法传入闭包。

拓展查询

Model 可以引入 XunSearchTrait 增加查询方法。XunSearchTrait 中已经引入了 Searchable 且重写了 search 方法,所以不必同时引入 Searchable

在使用 XunSearchTrait 之后,search 返回的是拓展之后的 Builder,可以使用 range 等方法。 例如设定 id 字段为 self::XUNSEARCH_TYPE_NUMERIC,在 id 大于 20 小于等于 60 的范围内搜索 word

除了 titlebody 特殊字段, XunSearch 默认设定字段为 string,需要进行区间检索的字段,要设为 numeric 或者 date 才能正常检索。

Builder 拓展的方法

方法 描述
setFuzzy 开启模糊搜索
setCutOff 设置”百分比“和”权重“剔除参数
setRequireMatchedTerm 是否在搜索结果文档中返回匹配词表
setWeightingScheme 设置检索匹配的权重方案
setAutoSynonyms 开启自动同义词搜索功能
setSynonymScale 设置同义词搜索的权重比例
setSort 设置多字段组合排序方式。该方法会覆盖 orderBy 方法。若无必要使用 orderBy 就行
setDocOrder 设置结果按索引入库先后排序
setCollapse 设置折叠搜索结果
addRange 添加搜索过滤区间或范围
addWeight 添加权重索引词
setScwsMulti 设置当前搜索语句的分词复合等级

XunSearchTrait 中包含一些静态方法,可以获取 Client 对象等。

方法 描述
XS 获取 Client 对象
XSSearch 获取 XSSearch 对象
XSIndex 获取 XSIndex 对象
XSTotal 获取该库中的总文档数
search 返回 Builder 对象
XSAllSynonyms 获取当前库内的全部同义词列表
XSSynonyms 获取指定词汇的同义词列表
XSHotQuery 获取热门搜索词列表
XSRelatedQuery 获取相关搜索词列表
XSExpandedQuery 获取展开的搜索词列表
XSCorrectedQuery 获取修正后的搜索词列表

注意: 通过静态方法获取 Client 对象时,同等于通过 search 方法获取 Builder 对象,再通过 Builder::getXS 获取 Client。 获取到 Client 后,Builder 对象已经被丢弃。所以该 Client 不属于任何 Builder。 可以通过该方法获取 XS 对象进行与 Model、Scout 等无关的原始操作。

更新

5.0.x

4.3.x

4.2.x

4.1.x

4.0.x

3.0.x

2.1.x

相关链接

laravel/scout

laravel/scout 文档

hightman/xs-sdk-php

XunSearch 文档


All versions of xunsearch-laravel with dependencies

PHP Build Version
Package Version
Requires php Version ^7.1|^8.0
laravel/scout Version ^6.1|^7.0|^8.0|^9.0|^10.0
hightman/xunsearch Version ^1.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package taxusorg/xunsearch-laravel contains the following files

Loading the files please wait ....