текст поискового запроса sphinx + float

Я изо всех сил пытаюсь заставить поиск sphinx работать для моего запроса:

((@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 результатов...

Любые идеи?


person Amundio    schedule 27.12.2014    source источник


Ответы (1)


Вот не очень хороший вариант, но должен работать

$s->addSelect("if (в(городе,'Амстердам') или в(регионе,'Амстердам') или (широта >= 10 и широта ‹= 12), 1, 0) foo");

$s->addFilter("foo", 1);

Я все еще пытаюсь найти более элегантное решение

person blackbass1988    schedule 05.08.2015