Я пытаюсь заставить поиск по сфинксу работать по моему запросу:
((@city "^Amsterdam" | @regio "^Amsterdam$") | (floatrange=lat,10,12))
Он отлично работает, когда я фильтрую результаты с помощью php API:
$s->SetFilterFloatRange('lat', 10, 12)
но проблема в том, что мне нужно иметь условие ИЛИ. Мой источник выглядит так
sql_field_string = title
sql_field_string = city
sql_field_string = regio
sql_attr_float = lat
sql_attr_float = lng
Если я попытаюсь
# search floatrange=lat,10,12
Я также получаю 0 результатов …
Есть идеи?
Здесь не хороший вариант, но должен работать
$ s-> addSelect («if (в (город, ‘Амстердам’) или в (регион, ‘Амстердам’) или (lat> = 10 и lat <= 12), 1, 0) foo «);
$ s-> addFilter («foo», 1);
Я все еще пытаюсь найти более элегантное решение
Других решений пока нет …