2015-04-18 4 views
2

Я создаю приложение, которое, мы надеемся, будет использовать слова и определения Wiktionary в качестве источника данных. В моих запросах я хотел бы найти все записи Викисловаря, которые похожи на предоставленные пользователем термины в названии или определении, но также имеют названия, заканчивающиеся указанным суффиксом (или одним из набора суффиксов).Wiktionary/MediaWiki Поиск и фильтрация суффикса

Например, я хочу, чтобы найти все записи Wiktionary, содержащие слова «большая собака», как это: https://en.wiktionary.org/w/api.php?action=query&list=search&srsearch=large%20dog

Но далее фильтровать результаты содержат только записи с заголовками, заканчивающихся с «г». Таким образом, в этом примере будут возвращены «борзые», «Сен-Бернар» и «развязанные».

Возможно ли это с помощью API поиска MediaWiki? У вас есть какие-нибудь рекомендации?

+1

Не возможно AFAIK - запрос аналогичной функции [T12808] (https://phabricator.wikimedia.org/T12808). – Tgr

ответ

1

Это возможно с помощью ElasticSearch/CirrusSearch, но disabled for performance reasons. Вы все еще можете использовать его на своей вики, или attempt smart search queries.

Обычно для Викисловаря я использую yanker, который может получить доступ к таблице страниц базы данных. Ваш пример (один-буквенный суффикс) будет огромным, но, например .*hound$ находит:

Afghan_hound Bavarian_mountain_hound Foxhound Irish_Wolfhound Mahound Otterhound Russian_Wolfhound Scottish_Deerhound Tripehound basset_hound bearhound black_horehound bloodhound boarhound bookhound boozehound buckhound chowhound coon_hound coonhound covert-hound covert_hound coverthound deerhound double-nosed_andean_tiger_hound elkhound foxhound gazehound gorehound grayhound greyhound harehound heckhound hell-hound hell_hound hellhound hoarhound horehound hound limehound lyam-hound minkhound newshound nursehound otterhound powder_hound powderhound publicity-hound publicity_hound rock_hound rockhound scent_hound scenthound shag-hound sighthound sleuth-hound sleuthhound slot-hound slowhound sluthhound smooth_hound smoothhound smuthound staghound war_hound whorehound wolfhound

+0

Спасибо! Это определенно полезно. – pcorey

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