This commit is contained in:
parent
138b4f24ee
commit
b11da225fb
|
@ -72,7 +72,7 @@ pipeline:
|
|||
commands:
|
||||
- apt-get update && apt-get -y install rsync
|
||||
- cd /data/deblan/deblan.io-murph/
|
||||
- rsync -avz "$CI_WORKSPACE/" "$CI_COMMIT_SHA"
|
||||
- rsync -az "$CI_WORKSPACE/" "$CI_COMMIT_SHA"
|
||||
|
||||
services:
|
||||
db:
|
||||
|
|
|
@ -65,7 +65,8 @@ class PostRepositoryQuery extends RepositoryQuery
|
|||
{
|
||||
$keywords = explode(' ', $keywords);
|
||||
|
||||
$filter = fn($keyword) => trim($keyword) !== '' && preg_match('/[a-zA-Z]+/', $keyword) && mb_strlen($keyword) > 3;
|
||||
$filterWords = fn($keyword) => trim($keyword) !== '' && preg_match('/[a-zA-Z]+/', $keyword) && mb_strlen($keyword) > 2;
|
||||
$filter = fn($keyword) => trim($keyword) !== '' && preg_match('/[a-zA-Z]+/', $keyword) && mb_strlen($keyword) > 2;
|
||||
|
||||
$keywords = array_filter($keywords, $filter);
|
||||
|
||||
|
@ -93,54 +94,60 @@ class PostRepositoryQuery extends RepositoryQuery
|
|||
$matches = [];
|
||||
|
||||
foreach ($results as $k => $v) {
|
||||
$added = false;
|
||||
$initWords = explode(' ', $v['title']);
|
||||
$words = [];
|
||||
|
||||
foreach ($initWords as $initWord) {
|
||||
$words = array_merge($words, preg_split('/[:_-]+/', $initWord));
|
||||
$words = array_merge($words, preg_split('/[:_\'-]+/', $initWord));
|
||||
}
|
||||
|
||||
$words = array_filter($words, $filter);
|
||||
$words = array_filter($words, $filterWords);
|
||||
|
||||
foreach ($keywords as $keyword) {
|
||||
if ($added) {
|
||||
continue;
|
||||
if(str_contains(mb_strtolower($v['content']), mb_strtolower($keyword))) {
|
||||
$similarity = 99;
|
||||
|
||||
if (isset($matches[$v['id']])) {
|
||||
$matches[$v['id']]['similarity'] += $similarity;
|
||||
} else {
|
||||
$matches[$v['id']] = [
|
||||
'id' => $v['id'],
|
||||
'title' => $v['title'],
|
||||
'published_at' => $v['published_at'],
|
||||
'similarity' => $similarity,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($words as $word) {
|
||||
if ($added) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (str_contains(mb_strtolower($word), mb_strtolower($keyword))) {
|
||||
$matches[] = [
|
||||
'id' => $v['id'],
|
||||
'published_at' => $v['published_at'],
|
||||
'similarity' => 100,
|
||||
];
|
||||
$similarity = 150;
|
||||
|
||||
$added = true;
|
||||
} elseif(str_contains($v['content'], $keyword)) {
|
||||
$matches[] = [
|
||||
'id' => $v['id'],
|
||||
'published_at' => $v['published_at'],
|
||||
'similarity' => 99,
|
||||
];
|
||||
|
||||
$added = true;
|
||||
if (isset($matches[$v['id']])) {
|
||||
$matches[$v['id']]['similarity'] += $similarity;
|
||||
} else {
|
||||
$matches[$v['id']] = [
|
||||
'id' => $v['id'],
|
||||
'title' => $v['title'],
|
||||
'published_at' => $v['published_at'],
|
||||
'similarity' => $similarity,
|
||||
];
|
||||
}
|
||||
} else {
|
||||
$lev = levenshtein($word, $keyword);
|
||||
$similarity = 100 - ($lev * 100 / mb_strlen($word));
|
||||
|
||||
if ($similarity > 70) {
|
||||
$matches[] = [
|
||||
'id' => $v['id'],
|
||||
'published_at' => $v['published_at'],
|
||||
'similarity' => $similarity,
|
||||
];
|
||||
|
||||
$added = true;
|
||||
if (isset($matches[$v['id']])) {
|
||||
$matches[$v['id']]['similarity'] += $similarity;
|
||||
} else {
|
||||
$matches[$v['id']] = [
|
||||
'id' => $v['id'],
|
||||
'title' => $v['title'],
|
||||
'published_at' => $v['published_at'],
|
||||
'similarity' => $similarity,
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue