ibraimv/laravel-solr-integration 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

ibraimv/laravel-solr-integration

最新稳定版本:v1.0.3

Composer 安装命令:

composer require ibraimv/laravel-solr-integration

包简介

A Laravel package for seamless Solr integration

README 文档

README

This package provides an easy-to-use Solr client for Laravel, allowing you to interact with an Apache Solr server. It facilitates document addition, bulk operations, and search queries, making it simple to integrate Solr with Laravel applications.

Installation

Step 1: Install the Package

Install via Composer:

composer require ibraimv/laravel-solr-integration

Step 2: Publish Configuration

Publish the Solr configuration file:

php artisan vendor:publish --provider="Ibraimv\SolrIntegration\SolrServiceProvider" --tag="config"

Step 3: Configure Environment Variables

Publish the Solr configuration file:

SOLR_BASE_URI="http://localhost:8983/solr"
SOLR_DEFAULT_COLLECTION="my_collection"
SOLR_DEFAULT_PARAMS='{"defType":"edismax","sort":"score desc"}'

Usage

Basic usage

use Ibraimv\SolrIntegration\Facades\Solr;

// Add a document
Solr::addDocument([
    'id' => '123',
    'title' => 'Sample Document',
    'description' => 'This is a sample document.',
]);

// Bulk add documents
Solr::bulkAddDocuments([
    ['id' => '124', 'title' => 'Second Document'],
    ['id' => '125', 'title' => 'Third Document'],
]);

// Search documents
$response = Solr::search('title:Sample', [
    'fq' => 'description:document',
    'sort' => 'score desc',
    'rows' => 10,
]);

// Delete a document by ID
Solr::deleteSingleDocument('123');

// Delete a document by a different field
Solr::deleteSingleDocument('unique_value', 'custom_field');


// Bulk delete by query or field criteria
Solr::bulkDeleteDocuments([
    'q' => 'description:document'
]);

// Bulk delete by specific field and array of values
Solr::bulkDeleteDocuments([
    'field' => 'custom_field',
    'values' => ['value1', 'value2', 'value3']
]);

Overriding Default Configuration Values

When creating an instance of SolrClient, you can override the default values for base_uri, default_collection, and default_params. This is useful if you need to use a separate Solr configuration for specific methods without affecting the global configuration.

use Ibraimv\SolrIntegration\SolrClient;

$customSolrClient = new SolrClient(null, [
    'base_uri' => 'http://custom-solr-server:8983/solr',
    'default_collection' => 'custom_collection',
    'default_params' => ['defType' => 'edismax', 'sort' => 'date desc']
]);

// Now you can use $customSolrClient with the specified configuration.
$customSolrClient->addDocument([
    'id' => '200',
    'title' => 'Custom Document',
    'description' => 'This document uses a custom Solr configuration.',
]);

Methods

  • addDocument(array $document): Add a single document to Solr.

  • bulkAddDocuments(array $documents): Add multiple documents at once.

  • deleteSingleDocument(string $value, string $field = 'id'): Delete a document by a specific field.

  • bulkDeleteDocuments(array $criteria): Delete multiple documents based on query criteria or field values.

  • search(string $query, array $options = []): Perform a search query with customizable options.

Configuration Options

  • base_uri: The base URL of the Solr server.

  • default_collection: The default Solr collection to use.

  • default_params: Default search parameters.

Exception Handling

All requests are wrapped in error handling. In case of failure, exceptions will be logged, and the error message can be found in the Laravel error logs.

License

This package is open-source and licensed under the MIT License.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-10-29