gpt4 book ai didi

php - Laravel + MongoDB + Elasticsearch,Elasticquent的配置问题

转载 作者:行者123 更新时间:2023-12-03 00:16:39 25 4
gpt4 key购买 nike

我正在使用Laravel,ElasticSearch和MongoDB构建Web应用程序。为此,我正在使用https://github.com/jenssegers/laravel-mongodb连接Laravel和MongoDB(效果很好),并使用https://github.com/elasticquent/Elasticquent连接到Elasticsearch(我遇到了问题)。

我的模型如下所示:

namespace App;

use Moloquent;
use Elasticquent\ElasticquentTrait;

class Article extends Moloquent
{
use ElasticquentTrait;
protected $collection = 'Articles';
}

我的 Controller 搜索功能如下所示:
public function search()
{
$texte = $_GET['texte'];
$articles = Article::where('Title', 'regexp', "/$texte/")->get();
//$articles = Article::search('bu');
//dd($articles);
return view('pages.articles', compact('articles'));
}

当使用Article模型的where函数时,我得到了3个结果
ElasticquentCollection {#134 ▼
#items: array:3 [▼
0 => Article {#142 ▶}
1 => Article {#143 ▶}
2 => Article {#144 ▶}
]
}

使用搜索功能时,我得到这样的信息,没有结果
ElasticquentResultCollection {#156 ▼
#took: 1
#timed_out: false
#shards: array:3 [▶]
#hits: array:3 [▶]
#aggregations: []
#instance: Article {#161 ▶}
#items: []
}

是否有人必须处理相同的体系结构,并可以帮助我解决这一问题?

谢谢您的帮助!

最佳答案

更改

$articles = Article::search('bu');


$articles = Article::search('bu')->get();

您没有获取集合。您必须使用 get()first()来收集搜索到的项目。

关于php - Laravel + MongoDB + Elasticsearch,Elasticquent的配置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35607231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com