问题标签 [laravel-scout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
212 浏览

laravel - 返回正常结果 tnt search

如果这是一个新手问题,我很抱歉。

我在我的应用程序中使用 tntseach 作为我的 laravel-scout 驱动程序和 serach 系统。

它目前运行良好,但唯一的问题是我收到结果的格式。

如果我搜索“视频”,即http://localhost:8000/search?q=video

我得到["Video post"] as the result.It is correct but I want the result to be justVideo post`,即省略括号和双引号。

如果我搜索“帖子”

我得到:

[“我的第一个帖子”,“视频帖子”,“帖子”]

我希望它是:

我试过json_decode()但没用,可能是因为它不是真正的 json。

这是我的SearchController.php

这是我的 search.blade.php:

0 投票
1 回答
174 浏览

laravel - Larvel Scout 范围为通过 Auth::user() 登录的用户不起作用 | 问题或技术错误

基本上我已经安装了带有 TNT 搜索的 Laravel Scout,所有的配置都是正确的并且它们工作,我什至有一个很好的搜索栏来使用 ajax 工作流程

但是模型的结果来自整个数据库集合,我的要求只是显示当前登录会话的用户创建的记录记录的结果

这些模型通过 Eloquent 关系关联,它们在通过该Auth::user()方法正常访问时工作,但侦察搜索似乎没有通过Auth::user()示例附加到任何模型:

以上工作,但将返回模型(和基础表)中的任何结果,而不考虑记录是否拥有或与登录的用户相关。但是我的意图是

我得到的错误如下

显然这是因为 Laravel Scout 没有通过该Auth::user()方法附加或可用,我可以编写代码在返回结果后过滤结果,但想象一下结果在用户范围之前的开销,这似乎是对所有查询的浪费,有没有办法限制用户,然后使用类似的 Laravel 侦察搜索Auth::user()

可以修改 Auth 行为以附加侦察,它会被 Laravel 的作曲家更新覆盖吗?

0 投票
0 回答
769 浏览

php - Laravel Scout TNTSearch - 500 个结果的限制

我在使用 Laravel Scout 搜索时发现只返回前 500 个结果。我查看了 TNTSearch 索引创建的 SQLite 数据库,它有超过 500 个匹配项。

上面的查询返回1139.

这:Model::search('qui')->get()->count()返回500

我一直无法找到限制的500来源。我认为这可能是 中的分块设置config\scout.php,但更改这些值不会影响我的输出。

驱动程序类 ( vendor/teamtnt/laravel-scout-tntsearch-driver/src/Engines/TNTSearchEngine.php) 有以下几行:

由函数$builder->limit设置take()。该代码使我相信,如果我没有定义限制,我将获得多达 10,000 个结果。但是, this:Model::search('qui')->take(750)->get()->count()仍然返回500

最后,我想获得整个结果集,但我什至无法超越更改限制。


如果它是一个错误,我已经在该项目上打开了一个问题。

0 投票
1 回答
600 浏览

php - 将scount与elasticsearch一起使用时,如何在laravel搜索中排序和组合相同索引的类型?

我有一个 Laravel 应用程序。scout我安装了 elasticsearch 服务器并使用和实现它到 laravel 中tamayo/laravel-scout-elastic

一切工作几乎完美。我有两个问题我找不到答案。

  1. 如何通过大多数单词匹配对结果的输出进行排序。或者_score of the elastic results

  2. 如何组合两种类型的同一索引?我有索引的名称news如何组合world newssports news

我正在使用这种方法进行搜索:

$searched = Model::search($q)->get();

在模型中,我包含了Scout

use Laravel\Scout\Searchable;use Searchable;

0 投票
2 回答
817 浏览

php - Laravel Scout - 创建时不添加关系

PHP: 7.3

拉拉维尔:5.8

Laravel 侦察兵:7.1

Algolia Scout 扩展:1.6

现有实例的侦察导入工作正常,所有实例都是同步的。

在更新同步工作正常, $touches 完成这项工作。

在存储中,内容关系为空,并且在创建时未更新。

看起来它不听内容 保存事件。(关系被添加到$touch数组中)。

0 投票
2 回答
1123 浏览

laravel - 如何在 Laravel scout 中添加范围查询以检索模型中的记录

我有一个模型 Post 有方法范围:

我想通过 Laravel Scout 搜索后,Post 的结果将应用此范围

但是 Laravel 触发异常 Laravel\Scout\Builder 没有方法 ABC。希望你能帮助我。谢谢!

0 投票
1 回答
672 浏览

laravel - 我们如何在 5.7 版本的 laravel 中安装 composer require spatie/laravel-searchable

我正在我的项目中设置搜索。其中包括多个要搜索的模型。首先,我尝试使用 scout 和 scout extended,但它并没有为 where 子句提供太大的灵活性。所以我想看看,composer require spatie/laravel-searchable但似乎它的依赖是laravel 5.8. 但我的laravel版本是5.7.28。请为我提供解决方案。

我应该如何进行相同的操作?

我尝试使用 scout 和 scout extended,但它并没有给 where 子句提供很大的灵活性

这非常有效,因为这是一个简单的查询,但如果我尝试使用 scout 和 algolia(搜索请求)

它没有给出任何结果。

当我尝试安装composer require spatie/laravel-searchable

我收到了这个错误

问题 1

  • 只能安装以下之一:laravel/framework[v5.7.28, 5.8.x-dev]。
  • 只能安装以下之一:laravel/framework[5.8.x-dev, v5.7.28]。
  • 只能安装以下之一:laravel/framework[5.8.x-dev, v5.7.28]。
  • spatie/laravel-searchable 1.3.0 需要 laravel/framework ~5.8.0 -> laravel/framework[5.8.x-dev] 可以满足。
  • spatie/laravel-searchable ^1.3 的安装请求 -> spatie/laravel-searchable[1.3.0] 可满足。
  • laravel/framework 的安装请求(锁定在 v5.7.28,要求为 5.7.*)-> laravel/framework[v5.7.28] 可以满足。
0 投票
1 回答
100 浏览

algolia - Algolia 的高级语法高亮问题与单引号字符

我对 Algolia 的高级语法和突出显示的结果有疑问。当我在请求中放入单引号字符“撇号”(')时,它确实与我的记录匹配,但除非我转义单引号字符,否则结果不会突出显示。

在以下示例中,我的索引中只有一条记录。高级语法已启用,并且标题属性是可搜索的。

在此处输入图像描述

当我在查询中键入标题时,突出显示似乎很好。

在此处输入图像描述

当我在查询周围加上双引号(以激活高级语法的完全匹配)时,它确实匹配结果,但标题没有突出显示。

在此处输入图像描述

但是,如果我用反斜杠转义单引号,它会突出显示它!

在此处输入图像描述

这是来自 Algolia 的错误(因为我使用的是自己的查询系统)?我是不是配置错了什么?

逃避一些字符对我来说似乎很奇怪,如果是这样的话,Algolia 不应该这样做吗?或者我应该逃避哪些字符?

任何帮助将不胜感激!

0 投票
0 回答
1101 浏览

php - 在 scout:import 上调用未定义的方法 App\Service::makeAllSearchable()

我遇到了 BadMethodCallException 的问题:调用未定义的方法 App\Service::makeAllSearchable() 虽然我有 Searchable (ScoutElastic\Searchable) 特征。

我正在使用 laravel 5.8 和 elasticsearch 6.8.1,也使用 babenkoivan/scout-elasticsearch-driver。我有 2 个模型要搜索。1. Doctor.php 和 2. Service.php 当我运行命令php artisan scout:import "App\Doctor"时它工作正常但php artisan scout:import "App\Service"抛出错误。对于医生和服务模型,我有以下文件

  1. Service.php -- ServiceIndexConfigurator.php -- ServiceSearchRule.php
  2. Doctor.php --- DoctorIndexConfigurator.php -- DoctorSearchRule.php

医生的仅供参考代码几乎相同。这是Service.php

服务索引配置器.php

服务搜索规则.php

错误信息

0 投票
1 回答
1378 浏览

laravel - 搜索关系数据 laravel scout elasticsearch

在使用 scout 弹性搜索时,我还需要对模型及其相关字段使用相同的索引。我创建了索引,但多个模型未映射到相同的索引。同样对于相同模型的相关字段也不会迁移。

例如。

我的索引是lead_index

A型有B型

模型 A 是可搜索模型

模型 A 和模型 B 的所有字段都在模型 A 中提及

使用索引运行模型更新对模型 A 来说很好,但在尝试与模型 B 映射时会引发错误,因为多个模型不能使用相同的索引进行映射。