问题标签 [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.
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 just
Video post`,即省略括号和双引号。
如果我搜索“帖子”
我得到:
[“我的第一个帖子”,“视频帖子”,“帖子”]
我希望它是:
我试过json_decode()
但没用,可能是因为它不是真正的 json。
这是我的SearchController.php:
这是我的 search.blade.php:
laravel - Larvel Scout 范围为通过 Auth::user() 登录的用户不起作用 | 问题或技术错误
基本上我已经安装了带有 TNT 搜索的 Laravel Scout,所有的配置都是正确的并且它们工作,我什至有一个很好的搜索栏来使用 ajax 工作流程
但是模型的结果来自整个数据库集合,我的要求只是显示当前登录会话的用户创建的记录记录的结果
这些模型通过 Eloquent 关系关联,它们在通过该Auth::user()
方法正常访问时工作,但侦察搜索似乎没有通过Auth::user()
示例附加到任何模型:
以上工作,但将返回模型(和基础表)中的任何结果,而不考虑记录是否拥有或与登录的用户相关。但是我的意图是
我得到的错误如下
显然这是因为 Laravel Scout 没有通过该Auth::user()
方法附加或可用,我可以编写代码在返回结果后过滤结果,但想象一下结果在用户范围之前的开销,这似乎是对所有查询的浪费,有没有办法限制用户,然后使用类似的 Laravel 侦察搜索Auth::user()
可以修改 Auth 行为以附加侦察,它会被 Laravel 的作曲家更新覆盖吗?
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
。
最后,我想获得整个结果集,但我什至无法超越更改限制。
如果它是一个错误,我已经在该项目上打开了一个问题。
php - 将scount与elasticsearch一起使用时,如何在laravel搜索中排序和组合相同索引的类型?
我有一个 Laravel 应用程序。scout
我安装了 elasticsearch 服务器并使用和实现它到 laravel 中tamayo/laravel-scout-elastic
。
一切工作几乎完美。我有两个问题我找不到答案。
如何通过大多数单词匹配对结果的输出进行排序。或者
_score of the elastic results
如何组合两种类型的同一索引?我有索引的名称
news
如何组合world news
和sports news
?
我正在使用这种方法进行搜索:
$searched = Model::search($q)->get();
在模型中,我包含了Scout
use Laravel\Scout\Searchable;
和use Searchable;
php - Laravel Scout - 创建时不添加关系
PHP: 7.3
拉拉维尔:5.8
Laravel 侦察兵:7.1
Algolia Scout 扩展:1.6
现有实例的侦察导入工作正常,所有实例都是同步的。
在更新同步工作正常, $touches 完成这项工作。
在存储中,内容关系为空,并且在创建时未更新。
看起来它不听内容 保存事件。(关系被添加到$touch数组中)。
laravel - 如何在 Laravel scout 中添加范围查询以检索模型中的记录
我有一个模型 Post 有方法范围:
我想通过 Laravel Scout 搜索后,Post 的结果将应用此范围
但是 Laravel 触发异常 Laravel\Scout\Builder 没有方法 ABC。希望你能帮助我。谢谢!
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] 可以满足。
algolia - Algolia 的高级语法高亮问题与单引号字符
我对 Algolia 的高级语法和突出显示的结果有疑问。当我在请求中放入单引号字符“撇号”(')时,它确实与我的记录匹配,但除非我转义单引号字符,否则结果不会突出显示。
在以下示例中,我的索引中只有一条记录。高级语法已启用,并且标题属性是可搜索的。
当我在查询中键入标题时,突出显示似乎很好。
当我在查询周围加上双引号(以激活高级语法的完全匹配)时,它确实匹配结果,但标题没有突出显示。
但是,如果我用反斜杠转义单引号,它会突出显示它!
这是来自 Algolia 的错误(因为我使用的是自己的查询系统)?我是不是配置错了什么?
逃避一些字符对我来说似乎很奇怪,如果是这样的话,Algolia 不应该这样做吗?或者我应该逃避哪些字符?
任何帮助将不胜感激!
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"
抛出错误。对于医生和服务模型,我有以下文件
- Service.php -- ServiceIndexConfigurator.php -- ServiceSearchRule.php
- Doctor.php --- DoctorIndexConfigurator.php -- DoctorSearchRule.php
医生的仅供参考代码几乎相同。这是Service.php
服务索引配置器.php
服务搜索规则.php
错误信息
laravel - 搜索关系数据 laravel scout elasticsearch
在使用 scout 弹性搜索时,我还需要对模型及其相关字段使用相同的索引。我创建了索引,但多个模型未映射到相同的索引。同样对于相同模型的相关字段也不会迁移。
例如。
我的索引是lead_index
A型有B型
模型 A 是可搜索模型
模型 A 和模型 B 的所有字段都在模型 A 中提及
使用索引运行模型更新对模型 A 来说很好,但在尝试与模型 B 映射时会引发错误,因为多个模型不能使用相同的索引进行映射。