Создайте расширенный поиск с фильтром

#php #mysql #sphinx

#php #mysql #сфинкс

Вопрос:

Я ищу sphinx и обнаружил способ настройки фильтров по одному или нескольким критериям. Я получу базу данных рецептов.

В тесте у меня есть таблица «записи». У меня есть карточки для каждого поля типа integer. У меня также есть поле «вид» и, наконец, последнее поле под названием «ингредиенты».

Я ищу несколько вещей. Для следующего примера у меня есть эта база данных, которая работает, но не завершена:http://pastebin.com/80LbtnZW и это мой sphinx.conf:http://pastebin.com/Nmpci1aC Сначала я хотел бы показать свой тип поля только в порядке убывания идентификатора, что мне следует добавить? Теперь я бы добавил фильтр и выбрал только те шоколадные конфеты, которые являются kind = 2. И, наконец, то же самое, с дополнительным фильтром ingredients = ‘молоко’

Что я должен добавить в качестве фильтра для сортировки по идентификатору, а затем для установки одного или нескольких фильтров.

Комментарии:

1. In the pastry, I have a table "records". I have cards for every type field is an integer. I also have a field "kind" and finally a last field called "ingredients". WTF? В выпечке? Что это значит?

2. В моей таблице «кондитерские изделия» (Bakery) У меня есть три поля: «записи», «вид» и «ингредиенты».

3. Я предлагаю вам обновить свой вопрос, чтобы отразить это. В нынешнем виде этот вопрос довольно нечитабелен. Пожалуйста, также ознакомьтесь с документацией по форматированию для StackOverflow, чтобы вы могли преобразовывать определения таблиц в неупорядоченные списки и т.д.

4. Привет, друг, я новичок в sphinx. Я получаю сообщение об ошибке №: 111

Ответ №1:

Сортировка по идентификатору…

 $sphinx->SetSortMode(SPH_SORT_EXTENDED, '@id DESC');
  

Добавьте фильтр…

 $sphinx->SetFilter('kind', array(2));
  

Вы можете добавить столько фильтров, сколько захотите, убедитесь, что вы выделили поля, которые вы фильтруете, как атрибуты.

Комментарии:

1. Спасибо! Но я не знаю почему, я получаю этот результат, когда пытаюсь установить setFilter: bool(false);

2. С помощью getError я получаю это: index recipes: нет такого атрибута фильтра ‘type’.

3. убедитесь, что вы сделали это перед вашим запросом и разместили весь свой php-код в pastebin