В настоящее время я использую MediaWiki API (через SPARQL SERVICE wikidata:mwapi) для запроса сущностей из Wikidata, используя конечную точку wbsearchentities
.
Однако я заметил, что результаты поиска не так хороши (например, поиск по charlton
или heston
не возвращает Чарльтона Хестона среди 10 первых результатов, как можно было бы ожидать), в то время как стандартная конечная точка поиска query?list=search
работает лучше.
У меня вопрос: какой алгоритм используется для wbsearchentities
и почему он не работает так же хорошо, как стандартный query?list=search
?
Мое текущее понимание состоит в том, что wbsearchentities
ищет только метки, а query?list=search
- полнотекстовый поиск, но это все равно не должно оправдывать это несоответствие в результатах IMO.
Ваше здоровье !
SELECT * WHERE { SERVICE wikibase:mwapi { bd:serviceParam wikibase:api "EntitySearch" . bd:serviceParam wikibase:endpoint "www.wikidata.org" . bd:serviceParam mwapi:search "charlton" . bd:serviceParam mwapi:language "en" . ?item wikibase:apiOutputItem mwapi:item . ?num wikibase:apiOrdinal true . } } ORDER BY ASC(?num) LIMIT 20
— в Викиданных так много элементов с именем Чарльтон, что очевидно, что эти результаты будут возвращены w.r.t. сходство строк - person UninformedUser   schedule 31.12.2018query?list=search
. Мне просто интересно, почемуwbsearchentities
не так хорошо работает, и в конце концов, полезен ли он вообще по сравнению со стандартным запросом (может быть, для производительности?) - person mhham   schedule 31.12.2018wbsearchentities
. Кроме того, ваше замечание относительно рейтинга страниц действительно уместно, так как я недавно наткнулся на это - person mhham   schedule 31.12.2018