поиск SQL sphinx: исключая элементы - PullRequest
2 голосов
/ 10 декабря 2010

Пусть мой поиск сфинкса происходит так:

$result = $cl->query($_REQUEST['term'], 'myindex');

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

$result = $cl->query($_REQUEST['term'] . " and somestringcol <> ''", 'myindex');

Есть ли какой-то правильный способ сделать это с помощью sphinx PHP API?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2010

Как и Лэнгдон, вы можете использовать SetFilter (), но вы также можете использовать оператор поиска по полю, который доступен в расширенном синтаксисе поиска, чтобы получить более конкретную информацию при поиске по индексу, а не связанные атрибуты. с этим.

$result = $cl->query($_REQUEST['term'] . " @somestringcol -term", 'myindex');

Документация по sphix содержит много хороших примеров: http://sphinxsearch.com/docs/1.10/extended-syntax.html

0 голосов
/ 10 декабря 2010

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

См .: http://www.sphinxsearch.com/docs/manual-1.10.html#attributes

...