Поиск иногда не дает результатов, когда индексы sphinx разделяются на несколько файлов в одной модели.Поиск мышления sphinx ничего не возвращает, когда несколько индексных файлов, используемых в одной модели
Версии я использую:
- Rails - 4,1
- Thinking Sphinx - 3.0.6
- Sphinx - 2.0.9
У меня есть пять индексов на этой модели :
ThinkingSphinx::Index.define :incident, name: "incident_index_1" ... do
indexes name
end
ThinkingSphinx::Index.define :incident, name: "incident_index_5" ... do
indexes tags.name, as: :tag
indexes custom_fields_values.value, as: :custom
end
Поиск отдельно, t он запрашивает возвращать правильные результаты:
Incident.search(conditions: { custom: "dd" })
Incident.search("some string")
Однако объединение запросов поля конкретного с общим запросом иногда не возвращает ничего:
Incident.search("some string", conditions: { custom: "dd" })
Если «некоторая строка» находится в tag
поле (которое определяется в том же файле индекса), он работает. Если он находится в поле name
(который определен в другом файле индекса), он не работает.
Я предполагаю, что это не все ваше определение индекса, проходящее через предоставленный контекст - можете ли вы поделиться всем в определении индекса? – pat
Я добавил дополнительную информацию. Все определение довольно длинное, и я не уверен, насколько он уместен. В общем, у меня есть еще 25 атрибутов «есть», все они определены в каждом индексе и еще 15 «индексов» полей, распределенных между 5 определениями индексов. – Jonathan
Хорошо, поэтому я предполагаю, что я хочу знать: вы ожидаете, что «какая-нибудь строка» будет в любом поле для конкретной записи, а «dd» - в настраиваемом поле для этой же записи? Я не думаю, что это связано с полиморфизмом, потому что вы проходите стандартную ассоциацию (это инверсная, которая является полиморфной). – pat