Laravel 5.1 — laravel-lucene-search

Я пытаюсь использовать https://github.com/nqxcode/laravel-lucene-search

Мой composer.json выглядит так:

"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"bestmomo/scafold": "dev-master",
"laravel/cashier": "~5.0",
"laravel/socialite": "*",
"nqxcode/laravel-lucene-search": "2.1.*"},

Обновление композитора работало просто отлично.

Затем я обновил свой config / app.php, добавив
'Search' => Nqxcode\LuceneSearch\Facade::class, на псевдонимы массив и Nqxcode\LuceneSearch\ServiceProvider::class, к массиву провайдеров.

Затем я получил и обновил config / laravel-lucene-search.php, как показано ниже:

<?php

return [
/*
|--------------------------------------------------------------------------
| The configurations of search index.
|--------------------------------------------------------------------------
|
| The "path" is the path to Lucene search index.
|
| The "models" is the list of the descriptions for models. Each description
| must contains class of model and fields available for search indexing.
|
| For example, model's description can be like this:
|
|      namespace\ModelClass::class => [
|          'fields' => [
|              'name', 'description', // Fields for indexing.
|          ]
|      ]
|
*/
'index' => [

'path' => storage_path('app') . '/lucene-search/index',

'models' => [

App\Question::class => [
'fields' => [
'title', 'raw_body', // Fields for indexing.
]
],


],
],

/*
|--------------------------------------------------------------------------
| ZendSearch token filters.
|--------------------------------------------------------------------------
|
| The "filters" is the list of ZendSearch token filters classes. Each class
| must implement the TokenFilterInterface interface. Stemming token filter
| for english and russian words is enabled by default. To disable it remove
| class 'Nqxcode\Stemming\TokenFilterEnRu' from token filters.
|
| The "stopwords" is the list of paths to files with stopwords. By default
| english and russian stopwords are used.
|
*/
'analyzer' => [

'filters' => [
Nqxcode\Stemming\TokenFilterEnRu::class,
],

'stopwords' => Nqxcode\LuceneSearch\Analyzer\Stopwords\Files::get(),
],
];

Наконец, я обновил мою модель вопросов, как показано ниже:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Nqxcode\LuceneSearch\Model\Searchable;

class Question extends Model implements Searchable
{

/**
* Is the model available for searching?
*/
public function isSearchable()
{
return $this->publish;
}


/**
* The database table that the Model uses
* @var string
*/
protected $table = "questions";

/**
* The fields that are mass assignable
* @var array
*/
protected $fillable = ['title','body','images','quality_score','deactivated','creator_id','reviewer_id'];

/*
* We have a calculated field (body alternate) that we want to access
*/
protected $appends = ['simple_body','raw_body'];

public function getRawBodyAttribute(){
return $this->attributes['body'];
}

Я строю индекс из моего терминала, используя search:rebuild -v и это успешно завершено.

Теперь я пытаюсь сделать простой тест, и он не проходит по этой строке в моем контроллере: $questions = Search::query('masses')->get();

Результаты, которые я получаю:
введите описание изображения здесь

Кто-нибудь знает, что идет не так? Права доступа к каталогу должны быть в порядке. Я могу использовать файловую систему laravel. Например: Storage::disk('local')->put('file.txt', 'Contents');

@nqxcode

Изменить: я дал 777 разрешений на каталог хранения и по-прежнему та же ошибка.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]