contextualcode / ibexa-solr-search-query-boost
实现了Ibexa DXP中Solr搜索查询的查询增强。
v2.0.0
2024-08-21 16:14 UTC
Requires
- php: >=7.4
- ext-dom: *
- ezsystems/ezplatform-solr-search-engine: ^3.0
- symfony/config: ^5.0
- symfony/dependency-injection: ^5.0
- symfony/http-kernel: ^5.0
This package is not auto-updated.
Last update: 2024-09-18 16:41:14 UTC
README
本包实现了Ibexa DXP中Solr搜索查询的查询增强。
安装
通过composer安装
composer require contextualcode/ibexa-solr-search-query-boost
使用方法
您需要使用
ContextualCode\IbexaSolrSearchQueryBoost\Query\Criterion\FullText
代替eZ\Publish\API\Repository\Values\Content\Query\Criterion\FullText
<?php ... - use eZ\Publish\API\Repository\Values\Content\Query\Criterion\FullText; + use ContextualCode\IbexaSolrSearchQueryBoost\Query\Criterion\FullText; ...
新的
queryBoost
参数适用于更新的FullText
标准。它期望有fields
和/或types
参数<?php ... - $fullTextQuery = new FullText('test'); + $fullTextQuery = new FullText('test', ['queryBoost' => $queryBoost]); ...
包含实现查询增强的示例控制器 src/Controller/CustomSearch.php
<?php
namespace App\Controller;
use eZ\Publish\API\Repository\SearchService;
use eZ\Publish\API\Repository\Values\Content\Query;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use ContextualCode\IbexaSolrSearchQueryBoost\Query\Criterion\FullText;
class CustomSearch extends AbstractController
{
private $searchService;
public function __construct(SearchService $searchService) {
$this->searchService = $searchService;
}
public function search(Request $request): JsonResponse
{
$queryBoost = [
'fields' => [
'article' => ['title' => 5, 'intro' => 2],
'folder' => ['name' => 3],
],
'types' => ['article' => 10, 'folder' => 0.8],
];
$query = new Query([
'query' => new FullText('test', ['queryBoost' => $queryBoost])
]);
$results = $this->searchService->findContent($query);
return new JsonResponse($results);
}
}