2016-08-22 3 views
0

Я пишу скрипт perl для получения результатов поиска из базы данных Xapian.Получить конкретную форму данных Xapian database с Perl

Я использую Поиск :: Xapian модуль и попробовал базовый Xapian Query Example. Эта базовая программа позволяет сделать запрос и получить массив результатов, отсортированных по релевантности. Моя проблема заключается в том, что метод get_data() возвращает все данные из документа (url, filname, abstract, author, ...), смешанные вместе как строка.

Я искал в CPAN module метод для получения каждого данных один за другим, но я не нашел его.

Возможно ли получить имя файла, url, author, ... один за другим, чтобы поместить их в определенную переменную?

+0

показать код, который производит этот выход –

+0

'get_data()' намеренно непрозрачная для Xapian. Что бы вы туда не встали, вы выходите; разные языки упрощают использование разных форматов. JSON, YAML, TOML и XML - все это возможно. 'omindex' и' scriptindex', однако, используют формат _sui generis_, который вы можете прочитать, разделив строку, затем разделив на '=', чтобы создать пары ключ/значение. –

ответ

0

Вы не разместили код для его создания или сведения о своей настройке. См simplesearch.pl примера, а не печатать его, присвоить то, что вы хотите переменный:

# Display the results. 
printf "%i results found.\n", $mset->get_matches_estimated(); 
printf "Results 1-%i:\n", $mset->size(); 

foreach my $m ($mset->items()) { 
    printf "%i: %i%% docid=%i [%s]\n", $m->get_rank() + 1, $m->get_percent(), $m->get_docid(), $m->get_document()->get_data(); 
} 

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

  • Нет связанных вопросов^_^