#solr #sunspot
#solr #sunspot
Вопрос:
Можно ли каким-то образом выяснить, с чем совпадает Solr?
Например, так.
class Movie < ActiveRecord::Base
searchable do
text :title
text :actors do
actors.map(amp;:name)
end
end
end
При поиске Bruce
списка Bruce Willis
и Bruce Almighty
должно быть возможно извлечь из Solr (Sunspot), если на самом деле Bruce Willis
и Bruce Almighty
где строки Solr совпадают.
Возможно ли это?
Ответ №1:
Эта информация доступна в debug
блоке Solr при предоставлении debugQuery=on
параметра. Обычно, когда я отлаживаю Sunspot, я проверяю журналы на наличие URL-адреса, который он запрашивает, и запускаю этот запрос непосредственно к Solr debugQuery=on
.
Вывод debugQuery может быть немного сложным. Вы можете обратиться к сообщению в блоге об отладке проблем с релевантностью приложений для поиска, чтобы немного рассказать о том, что вы там видите.
Комментарии:
1. Я не могу заставить его работать так, как я хочу. Я искал
Bruce Willis
, как и в приведенном выше примере. Вот результат. Я не могу найти там ничего, что указывало бы на то, что исходный источник исходит от человека (актера)Bruce Willis
. Эта строка, напримерPerson.find_by_name("Bruce Willis").id
, возвращает694
,694
в выводе отладки нет идентификатора. Я делаю что-то не так?2. Вы пробовали переиндексировать? У вас могут быть устаревшие данные в вашем индексе.
3. Я делаю переиндексацию aws. осталось 10 часов 🙂 Я вернусь с результатом.
4. Это то же самое после переиндексации моей базы данных.
5. На самом деле, если вы углубитесь в вывод отладки, вы увидите, что термины
bruce
иwilli
сопоставляются вMovie
записях, в ихactor_names_text
полях. Похоже, все так, как и ожидалось.