second step
This commit is contained in:
@@ -21,15 +21,10 @@ use App\Tag\TagVectorSearchClient;
|
||||
*/
|
||||
final readonly class CatalogIntentLite
|
||||
{
|
||||
/**
|
||||
* Slightly wider than the old top-3 search so generic tags do not crowd out
|
||||
* relevant catalog_entity hits too easily.
|
||||
*/
|
||||
private const SEARCH_LIMIT = 6;
|
||||
|
||||
public function __construct(
|
||||
private TagVectorSearchClient $tagVectorClient,
|
||||
private QueryCleaner $queryCleaner,
|
||||
private CatalogIntentConfig $config,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -52,7 +47,7 @@ final readonly class CatalogIntentLite
|
||||
}
|
||||
|
||||
$catalogHits = $this->filterCatalogEntityHits(
|
||||
$this->tagVectorClient->search($cleanQuery, self::SEARCH_LIMIT)
|
||||
$this->tagVectorClient->search($cleanQuery, $this->config->getIntentSearchLimit())
|
||||
);
|
||||
|
||||
if ($catalogHits === []) {
|
||||
@@ -62,14 +57,14 @@ final readonly class CatalogIntentLite
|
||||
$best = $catalogHits[0];
|
||||
$bestScore = (float) ($best['score'] ?? 0.0);
|
||||
|
||||
if ($bestScore < CatalogIntentConfig::MIN_SCORE) {
|
||||
if (!$this->config->isScoreAccepted($bestScore)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (isset($catalogHits[1])) {
|
||||
$secondScore = (float) ($catalogHits[1]['score'] ?? 0.0);
|
||||
|
||||
if (abs($bestScore - $secondScore) < CatalogIntentConfig::AMBIGUITY_DELTA) {
|
||||
if ($this->config->isAmbiguous($bestScore, $secondScore)) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user