Add ElasticSearch support

This commit is contained in:
DariusIII
2020-01-02 00:02:45 +01:00
parent e5a31eb7a1
commit 27c8001435
15 changed files with 922 additions and 55 deletions
+21 -2
View File
@@ -190,8 +190,27 @@ class Predb extends Model
}
$sql = self::query()->leftJoin('releases', 'releases.predb_id', '=', 'predb.id')->orderByDesc('predb.predate');
if (! empty($search)) {
$sphinx = new SphinxSearch();
$ids = Arr::pluck($sphinx->searchIndexes('predb_rt', $search, ['title']), 'id');
if (config('nntmux.elasticsearch_enabled') === true) {
$search = [
'index' => 'predb',
'body' => [
'query' => [
'match' =>['title' => $search],
]
]
];
$results = \Elasticsearch::search($search);
$ids = [];
foreach ($results['hits']['hits'] as $result) {
$ids[] = $result['_source']['id'];
}
} else {
$sphinx = new SphinxSearch();
$ids = Arr::pluck($sphinx->searchIndexes('predb_rt', $search, ['title']), 'id');
}
$sql->whereIn('predb.id', $ids);
}