2009-12-15 5 views
0

Я использую Ferret как полнотекстовую поисковую систему в небольшом проекте, над которым я работаю.Использование Ferret для создания уникальных облаков тегов

Через документацию и несколько примеров онлайн я смог собрать генератор облаков тегов, используя полнотекстовый индекс, чтобы помочь с созданием облака тегов с использованием метода IndexReader.terms.

Это хорошо работает до сих пор, когда я хочу получить данные о терминах на основе результата поиска.

Например, если пользователь ищет «торт», я хочу показать им облако тегов терминов, используемых в ассоциации с термином «торт».

Я искал примеры того, где метод terms может использоваться в сочетании с набором результатов поиска или аналогичным?

В настоящее время я использую следующий метод для создания моего списка тегов:

reader = Ferret::Index::IndexReader.new(Scrape.find_last_index_version) 
terms = [] 
reader.terms(:all_quotes).each do |term, doc_freq| 
    terms << [term, doc_freq] 
end 

Приветствия.

ответ

0

Это больше похоже на частотную диаграмму термина (например, словосочетание), чем облако тегов? Или это в поле тега? Во всяком случае, индекс не отслеживает частоту термина в каждом возможном подмножестве документа (например, результаты поиска), поэтому метод не будет быстрым, даже если он существует. Для одного документа вы можете получить TermFreqVector и предоставить предлагаемые документы, которые являются хорошими совпадениями для других частых терминов в этом документе. Таким образом, вы можете взять некоторые из лучших результатов, захватить термин векторы от каждого и просто добавить их, но эти совокупные функции не существуют изначально (они обычно стараются не помещать туда медленные операции.)

Смежные вопросы