定制 contextualcode/ibexa-solr-search-query-boost 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

contextualcode/ibexa-solr-search-query-boost

最新稳定版本:v2.0.0

Composer 安装命令:

composer require contextualcode/ibexa-solr-search-query-boost

包简介

Implements query boosting for the Solr search query.

README 文档

README

This package implements query boosting for the Solr search query in Ibexa DXP.

Installation

Require via composer:

 composer require contextualcode/ibexa-solr-search-query-boost

Usage

  1. You need to use ContextualCode\IbexaSolrSearchQueryBoost\Query\Criterion\FullText instead of 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;
     ...
    
  2. New queryBoost parameter is available for the updated FullText criteria. It expects to have fields and/or types parameters:

     <?php 
     ...
     - $fullTextQuery = new FullText('test');
     + $fullTextQuery = new FullText('test', ['queryBoost' => $queryBoost]);
     ...
    

The example src/Controller/CustomSearch.php controller with implemented query boost:

<?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);
    }
}

统计信息

  • 总下载量: 4.03k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-only
  • 更新时间: 2021-10-29