Мне нужно, чтобы все пользователи из групп, включая подгруппы:Мышление сфинкса родословную поиски
приложение/индексов/user_index.rb
ThinkingSphinx::Index.define :user, with: :active_record, delta: ThinkingSphinx::Deltas::SidekiqDelta do
has groups.id
has "CONCAT_WS('/',groups.id,groups.ancestry)", as: :group_ids, type: :integer, multi: true
end
Но когда я пытаюсь искать:
User.search_for_ids(with_all: { group_ids: [3] })
возвращает все пользователи из подгрупп, но без пользователей из группы с идентификатором
- Sphinx 2.1.7 работает undex Arch Linux
- Мышление сфинкса v3.1.1
Есть ли причина, по которой вы используете/в качестве разделителя вместо запятой? – pat
По умолчанию по умолчанию используется/как разделитель. Использование другого не дает результата. – user3332726
Sphinx ожидает, что запятые будут целочисленными разделителями в многозначных атрибутах. Можете ли вы изменить все/s на, в пределах этой сгенерированной строки? Кроме того, вы должны иметь возможность проверить сгенерированное значение, запустив сгенерированный sql_query из источника user_core_0 в 'config/development.sphinx.conf' с измененным предложением WHERE для конкретного пользователя. – pat