feat: add partial word match with low weighting

This commit is contained in:
Daniel Klabbers 2021-12-14 12:05:27 +01:00
parent 2d989c7bbc
commit 0d51e5d912
1 changed files with 7 additions and 2 deletions

View File

@ -57,7 +57,8 @@ class SearchController extends ListDiscussionsController
if (! empty($search)) { if (! empty($search)) {
$filterQuery $filterQuery
->add($this->sentenceMatch($search)) ->add($this->sentenceMatch($search))
->add($this->wordMatch($search)); ->add($this->wordMatch($search))
->add($this->partialMatch($search));
} }
$builder = (new Builder($this->elastic)) $builder = (new Builder($this->elastic))
@ -198,9 +199,13 @@ class SearchController extends ListDiscussionsController
protected function wordMatch(string $q) protected function wordMatch(string $q)
{ {
return (new MatchQuery('content', $q))->boost(.3); return (new MatchQuery('content', $q))->boost(.5);
} }
protected function partialMatch(string $q)
{
return (new MatchQuery('content', "*$q*"))->boost(.2);
}
protected function getGroups(User $actor): Collection protected function getGroups(User $actor): Collection
{ {