Встраивание семантических запросов в результаты поиска MediaWiki - PullRequest
0 голосов
/ 10 ноября 2010

Я использую Semantic MediaWiki с поиском Lucene и ищу способ встраивания запроса SQL или Semantic Search с использованием условий ввода поиска для создания небольшой таблицы результатов.

Например: если я искалномер телефона Боба и мои семантические данные структурированы как [[номер Боба :: 555-555-5555]] в статье [[Боб]], я бы хотел, чтобы поиск по «номеру Боба» возвращал не только нормальную люценурезультаты, но небольшая таблица с результатами семантического запроса, то есть встроенный запрос, такой как

{{#ask: [[Bob]]
 | ?Number
 | format=table
}}

, где 'Bob' и 'Number' заполняются из условий поиска и предполагают, что статьи запрашиваются (т.е. [[Боб]]) придерживайтесь известного формата.

Чтобы создать простую таблицу:

| Name | Number       |
| Bob  | 555-555-5555 |

Я мог бы также сделать это с помощью SQL-запроса, а не встроенного запроса семантического поиска, если это необходимоЯ просто не знаю, с чего начать, если нужно изменить страницу результатов поиска или получить доступ к условиям поиска для создания этого запроса.Будем весьма благодарны за любую помощь в том, с чего начать (или, конечно, если есть какое-то расширение, которое уже делает это).

1 Ответ

1 голос
/ 11 ноября 2010

Вы используете это расширение для поиска Lucene?

http://www.mediawiki.org/wiki/Extension:MWSearch

Я сделал нечто похожее на результаты поиска от Sphinx вместо Lucene. Пока вы можете получить массив имен страниц, метод должен оставаться прежним.

Вам нужно будет найти, где генерируются фрагменты текста, и заменить их вызовом анализатора MediaWiki, если вы хотите оценить результат запроса #ask.

На практике я обнаружил, что вызов синтаксического анализатора для каждого совпадения в наборе результатов значительно снижает производительность поиска (до 15 секунд на страницу результатов).

Гораздо эффективнее использовать предопределенное свойство Semantic MediaWiki для своих фрагментов (это легко сделать, если вы используете семантические формы) и получать значение этого свойства вместо вызова анализатора.

...