Я использую Silverstripe FullTextSearch. Мой опрос - это поиск в пользовательском поле и отображение результатов. Существует код записи в index.md:Silverstripe fulltextsearch on custom field
Файл: MySite/код/MyIndex.php:
<?php
class MyIndex extends SolrIndex {
function init() {
$this->addClass('MyPage');
$this->addFulltextField('Description');
}
}
В page.php
class Page_Controller extends ContentController {
private static $allowed_actions = array('search');
public function search($request) {
$query = new SearchQuery();
$query->search($request->getVar('q'));
return $this->renderWith('array(
'SearchResult' => singleton('MyIndex')->search($query)
));
}
}
Когда я пытаюсь найти какие-то слова, из поля описания, результаты не найдены ... Предложения?
Спасибо за ответ. Ваш метод поиска похож на частичное совпадение? «Что-то»? Если это так, его недостаточно для поиска сложных слов или ошибочных слов. Я уже сделал себе поисковый код, чтобы напрямую получать данные из базы данных с помощью% something℅, и я нашел, что этого недостаточно для моих сайтов. – StefGuev
К сожалению, он использует частичное совпадение. Я предполагаю, что другим решением было бы изучить создание настраиваемого фильтра, который использует полный текстовый поиск, или вручную написать SQL с использованием класса SQLQuery (подробнее см. Https://docs.silverstripe.org/en/3.4/developer_guides/model/sql_query /) – PsychoMo
Humm ok, Если бы я нашел решение, я опубликую его, чтобы попытаться помочь мне – StefGuev