laravel如何使用scout+elasticsearch搜索,并支持IK分词

这篇具有很好参考价值的文章主要介绍了laravel如何使用scout+elasticsearch搜索,并支持IK分词。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

laravel 如何使用方便的使用es实现全文搜索功能?

本扩展包支持IK分词设置。

在按下文操作前请先阅读 laravel scout 全文搜索文档

安装

您可以通过composer安装软件包 wannanbigpig/laravel-scout-elastic:

composer require wannanbigpig/laravel-scout-elastic

Laravel 会自动注册驱动服务提供者。

Elasticsearch 配置

安装完成后,您应该使用vendor:publish Artisan命令发布Scout配置文件。该命令将把scout.php配置文件发布到应用程序的config目录中:

php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"

发布Laravel Scout包配置后,您需要将驱动程序设置为弹性搜索并添加其配置:

// config/scout.php
<?php

return [
    // ...
    
    'driver' => env('SCOUT_DRIVER', 'elasticsearch'),
    
    // ...
    
    /*
    |--------------------------------------------------------------------------
    | Elasticsearch Configuration
    |--------------------------------------------------------------------------
    |
    | Here you may configure your Elasticsearch settings.
    |
    */

    'elasticsearch' => [
        'hosts' => [env('ELASTICSEARCH_HOST', 'http://127.0.0.1:9200')],
        // 如果你的es没有开启校验账号密码则忽略该配置
        // 'auth' => [
        //     'username' => 'elastic',
        //     'password' => 'password copied during Elasticsearch start',
        // ],
        // index_ 后跟索引名称。如果不需要自定义索引分词模式,则跳过下面的设置
        'index_article' => [
            'settings' => [
                'number_of_shards' => 5,
                'number_of_replicas' => 1,
            ],
            'mappings' => [
                "properties" => [
                    "title" => [
                        "type" => "text",
                        "analyzer" => "ik_max_word",
                        "search_analyzer" => "ik_smart",
                        "fields" => ["keyword" => ["type" => "keyword", "ignore_above" => 256]],
                    ],
                ],
            ],
        ],
    ],
];

使用

命令
// 创建索引
php artisan scout:index article

// 删除
php artisan scout:delete-index article

// 批量更新数据到es
// Article这个model需引入use Laravel\Scout\Searchable;
// 想自定义同步到es的字段需自己实现toSearchableArray这个方法
php artisan scout:import "App\Models\Article"

搜索示例
use App\Models\Article;

// $condition = "test";
// ... or
// $condition = [
//     "title" => "test",
//     "abstract" => "test"
// ];
// ... or
$keyword = "test";
$source = [1,2];
$startTime = '2023-05-01T00:00:00.000+0800';
$endTime = '2023-05-20T00:00:00.000+0800';
$condition = [
	// 该字段仅用来区分是否选择自定义es搜索body请求体,不会实际发送至es
    "_customize_body" => 1,
    "query"=>[
	    "bool" => [
	        "should" => [
	            [
	                "match" => [
	                    "title" => ["query" => $keyword, 'boost' => 5]
	                ]
	            ],
	            [
	                "match" => [
	                    "abstract" => ["query" => $keyword, 'boost' => 3]
	                ]
	            ],
	        ],
	        "must" => [
	            [
	                "terms" => ["source" => $source]
	            ],
	            [
	                "range" => [
	                    "created_at" => [
	                        'gte' => $startTime,
	                        'lte' => $endTime
	                    ]
	                ]
	            ]
	        ]
	    ],
    ],  
];

$data = Article::search($condition)
        ->orderBy('_score', 'desc')
        ->paginate(10);

更多使用方法 Laravel Scout official documentation.

参考:

https://github.com/ErickTamayo/laravel-scout-elastic

https://github.com/laravel/scout/tree/10.x

https://github.com/medcl/elasticsearch-analysis-ik

License

The MIT License (MIT).文章来源地址https://www.toymoban.com/news/detail-464477.html

到了这里,关于laravel如何使用scout+elasticsearch搜索,并支持IK分词的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElasticSearch-使用IK分词器进行分词

    使用KIbana测试IK分词器 打开开发工具台 ik_smart 最少分词器 分词结果比较少 ik_max_word 颗粒度最细分词器 分词结果比较多,组成各种结果,穷尽词库的可能! 再看个例子,把我们的句子换成 超级喜欢魏一鹤学习Java 首先看最少分词 然后是最细颗粒度分词 问题来了 我们输入超级喜

    2024年02月13日
    浏览(38)
  • Elasticsearch中使用IK分词配置

    在 Elasticsearch 中,可以使用 IK 分词器来替代默认的 text 类型。IK 分词器是一个开源的中文分词器,支持中文分词和英文分词。 要将默认的 text 类型修改为 IK 分词器,需要进行以下步骤: 安装 IK 分词器插件: 下载 IK 分词器插件,可以从 GitHub 上的 elasticsearch-analysis-ik 页面下

    2024年02月13日
    浏览(34)
  • 本地elasticsearch中文分词器 ik分词器安装及使用

    ElasticSearch 内置了分词器,如标准分词器、简单分词器、空白词器等。但这些分词器对我们最常使用的中文并不友好,不能按我们的语言习惯进行分词。 ik分词器就是一个标准的中文分词器。它可以根据定义的字典对域进行分词,并且支持用户配置自己的字典,所以它除了可

    2024年02月05日
    浏览(69)
  • “Elasticsearch + Kibana + ik分词器“介绍与使用

    Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。 Elasticsearch 官方介绍 官方文档 官方中文 社区中文1 社区中文2 1、Index (索引) 2、Typ

    2023年04月08日
    浏览(75)
  • ElasticSearch之IK分词器安装以及使用介绍

    elasticsearch 默认的内置分词器对中文的分词效果可能并不理想,因为它们主要是针对英文等拉丁语系的文本设计的。如果要在中文文本上获得更好的分词效果,我们可以考虑使用中文专用的分词器。 IK 分词器是一个开源的中文分词器插件,特别为 Elasticsearch 设计和优化。它在

    2024年02月13日
    浏览(40)
  • Elasticsearch下载安装,IK分词器、Kibana下载安装使用,elasticsearch使用演示

    首先给出自己使用版本的网盘链接:自己的版本7.17.14 链接:https://pan.baidu.com/s/1FSlI9jNf1KRP-OmZlCkEZw 提取码:1234 一般情况下 Elastic Search(ES) 并不单独使用,例如主流的技术组合 ELK(Elasticsearch + Logstash + Kibana ) 1. Elasticsearch下载 下载之前,先看下和 JDK 版本的对应关系,版本

    2024年02月05日
    浏览(45)
  • windows安装Elasticsearch后使用ik分词器报错解决办法

    最近在学习Elasticsearch,安装完成后下载了ik分词器压缩到plugins目录下启动es报错如下: 咋一看以为是es对应的jdk自带的权限不足导致的,查看jdk自带的文件查看权限没有发现问题:D:Code StudyTechnologyESelasticsearch-8.11.1jdklibsecurity下的default.policy 后面发现是路径带了空格,把

    2024年01月20日
    浏览(50)
  • Elasticsearch使用系列-ES增删查改基本操作+ik分词

    ES是一个NoSql数据库应用。和其他数据库一样,我们为了方便操作查看它,需要安装一个可视化工具 Kibana。 官网: https://www.elastic.co/cn/downloads/kibana 和前面安装ES一样,选中对应的环境下载,这里选择windows环境,注意安装的版本一定要和ES的版本一致,不然可能会启动不起来。

    2024年02月01日
    浏览(54)
  • elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器

    插件是用户以自定义方式增强es功能的一种方法,分两类,核心插件和社区贡献插件。 插件太多,只需要熟悉插件的安装流程即可,根据项目需要再自行安装。 核心插件: 核心插件属于es项目,插件的版本号始终与es安装包的版本号相同,这些插件由es团队维护。 项目地址

    2024年02月14日
    浏览(45)
  • windows环境基于Elasticsearch8.4.0的IK中文分词器的安装、部署、使用

    目录 问题现象: 解决方法: 1、下载IK中文分词器 2、部署 3、使用 前言(选看)       最近在重温Elasticsearch,看来一下官网,都出到8.4.3版本了。想当初学的时候用的还是5.6.8,版本更新了很多意味着有大变动。           windows环境基于Elasticsearch8.4.0的IK中文分词器的安

    2024年02月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包