Нет поиска по первичному ключу с помощью Laravel Scout?

Я использую Laravel Scout с TNTSearch Engine, он работает нормально, но есть одна небольшая проблема. У меня есть следующие записи.

| ID      | Name     |
+---------+----------+
| 9030100 | Car      |
| 9030150 | Car2     |
| 9030200 | Radio    |

Вот мой запрос:

CatalogProducts::search( $query )->paginate( 15 );

Когда я ищу "автомобиль", он возвращает все записи со словом "автомобиль" в названии.

Когда я ищу "9030100", возвращается продукт "Автомобиль".

Но когда я ищу "9030", у меня нет результатов. Почему? Как это исправить?


person Damian    schedule 04.04.2017    source источник
comment
Я думаю, что идентификатор является целым числом, если вы измените идентификатор на строку, вы можете выполнить поиск с помощью «9030» и получить 9030100.   -  person Vahe Galstyan    schedule 04.04.2017
comment
@VaheGalstyan Нет, это уже строка   -  person Damian    schedule 04.04.2017


Ответы (1)


попробуй изменить размытость. установите нечеткость в true.

'tntsearch' => [
'storage'  => storage_path(), //place where the index files will be stored
'fuzziness' => true,
'fuzzy' => [
    'prefix_length' => 2,
    'max_expansions' => 50,
    'distance' => 2
],
'asYouType' => false,
person Manish Champaneri    schedule 04.04.2017
comment
Я загружаю данные так же, как и вы, в свою базу данных и нашел это решение. Просто измените distance = 4 и prefix_length = 4 для 9030, чтобы получить результат - person Manish Champaneri; 05.04.2017
comment
Дело в том, что вы должны оптимизировать prefix_length и расстояние в соответствии с вашими потребностями. Удачи - person Manish Champaneri; 05.04.2017