- Текстовые ограничения
- Языковые ограничения
- Ограничения схемы
- Ограничения метасхемы
- Подсчет очков и рейтинг
- Другие ограничения
На этой странице содержится список рецептов различных способов ограничения поисковых запросов с помощью Службы поиска .
Текстовые ограничения
Текстовые данные для сущности Freebase берутся в первую очередь из ее имени и псевдонимов, затем из ее ключей и других текстовых свойств и, наконец, из ее якорных данных в Википедии, если они были согласованы с темой Википедии для конкретного языка.
Текстовые ограничения привязаны к языку; в настоящее время поддерживается 18 языков. Английский язык охватывается, безусловно, больше всего и является языком по умолчанию.
Список всех поддерживаемых в настоящее время языковых кодов можно найти по следующему адресу:
https://www.googleapis.com/freebase/v1/search?help=langs&indent=true
Текстовое ограничение указывается параметром query
. Его язык указывается параметром lang
. Например:
query: "gore" query: "gore" lang: "fr" query: "gore" lang: "de"
Во время индексации текстовые данные нормализуются с учётом особенностей языка. Например, в английском языке текст преобразуется в строчные буквы и удаляются акценты. Во время запроса текст запроса нормализуется с учётом особенностей языка. Например:
query: "beyoncé" query: "beyonce"
Несколько параметров управляют сопоставлением текстового ограничения. Установка prefixed
параметра в true
запускает сопоставление префикса только по имени и псевдонимам (и обычное сопоставление по другим текстовым данным). Например:
query: "bob dy" prefixed: true
Установка stemmed
в true
активирует сопоставление по основе только для имён и псевдонимов (и обычное сопоставление для других текстовых данных). Сопоставления по основе могут использоваться для вставки суффиксных различий, характерных для конкретного языка, вносимых множественным числом или другими грамматическими формами. Например:
query: "potatos" stemmed: true
Заключение текста запроса в двойные кавычки ("") запускает фразовое сопоставление. Текстовые токены запроса должны располагаться рядом друг с другом в текстовых данных совпадающей сущности. Например:
query: "\"to be or not to be\""
Используйте параметры name
, alias
и type
для сопоставления с людьми и сущностями, чьи имена содержат искомое слово. Например:
filter: "(all name:gore alias:gore type:/people/person)"
Аналогично, следующий пример сопоставляет сущности /people/person
только с соответствующим alias
, но не с их name
:
filter: "(all (not name:gore) alias:gore type:/people/person)"
Помимо указания того, какие текстовые поля должны сопоставляться, можно также указать, как должно происходить сопоставление, вставив один из следующих модификаторов между операндом и текстовым полем:
-
{word}
: требует, чтобы слова в строке совпадали со словами в соответствующем текстовом поле документа. (по умолчанию) -
{phrase}
: требует, чтобы слова располагались рядом друг с другом в том же порядке в соответствующем текстовом поле документа. -
{full}
: аналогично{phrase}
, но также требуется, чтобы фраза полностью совпадала с текстовым полем, а не только находилась внутри него. Другими словами, требуется полное совпадение.
Например, чтобы найти музыкальный сингл Home Марка Бруссарда, используйте следующий фильтр:
filter: "(all type:/music/single name{full}:home /music/track/artist:"Marc Broussard")"
Языковые ограничения
Как и в случае с текстовыми ограничениями, параметр lang
используется для указания правил нормализации языка, которые следует использовать для преобразования текста в токены запроса. Язык запроса также влияет на ранжирование результатов, поскольку freebase-search получает сигнал релевантности, специфичный для конкретного языка, из соответствующей языковой версии Википедии.
В настоящее время поддерживаются девять языков: английский (en), испанский (es), французский (fr), немецкий (de), итальянский (it), португальский (pt), китайский (zh), японский (ja) и корейский (ko). Английский язык имеет наибольшее покрытие и является языком по умолчанию.
Поиск на нескольких языках одновременно
Параметр lang
принимает список кодов языков, разделенных запятыми, что приводит к выполнению поиска на всех указанных языках, а также к ранжированию результатов на первом языке в списке и отображению их на первом языке списка, который имеет имя для сущности.
Например:
Следующий поисковый запрос по немецкому слову «Sonnenblume» выполняется на немецком и французском языках. Он ранжирует результаты и отображает их на французском языке:
query: "Sonnenblume" lang: "fr,de"
Следующий запрос ищет на английском языке фильмы на корейском языке и отображает их корейское название. Английская часть запроса — это слово «korean» в ограничении expressed_by
:
filter: "(all expressed_by:korean type:/film/film)" lang: "ko,en"
Ограничения схемы
Ограничения схемы задаются параметрами type
и domain
. type
соответствует значениям свойств /type/object/type
сущности.
Например, следующий код ограничивает поиск только людьми:
query: "gore" type: "/people/person"
domain
соответствует значениям /type/type/domain
всех значений /type/object/type
сущности.
Например, следующий код ограничивает поиск только сущностями на французском языке в домене /film
:
query: "babar" domain: "/film" lang: "fr"
Вы также можете использовать отдельные свойства Freebase для фильтрации запроса. Например, следующий код ограничивает поиск только пользователями из Канады:
query "john" filter: "(all type:/people/person /people/person/nationality:"Canada")"
Ограничения метасхемы
Ограничения метасхемы фильтруют сущности по семантическим предикатам. Эти предикаты представляют собой высокоуровневые концепции, построенные на основе коллекций свойств Freebase, описывающих схожие семантические отношения.
Ограничения метасхемы указываются с помощью операндов параметров filter
в сочетании с именем сущности или ограничением MID.
Поддерживаемые операнды фильтра Metaschema
Freebase Search поддерживает следующие операнды фильтров Metaschema. Попробуйте каждый пример, нажав на ссылку в таблице или воспользовавшись приложением Freebase Search Example .
Имя операнда | Пример(ы) |
---|---|
abstraction | "блюда из феттучини" ( Попробуйте. ) filter: "(all abstraction:fettuccine)" |
abstraction_of | "класс локомотива Западного Бульварка" ( Попробуйте. ) filter: "(all abstraction_of:"Western Bulwark")" |
adaptation | «Произведение «Травиата» — это адаптация» ( Попробуйте. ) filter: "(all adaptation_of:"La Traviata")" |
administered_by | "Каннские награды" ( Попробуйте. ) filter: "(all type:awards administered_by:cannes)" |
administers | «Кто управляет газетой Synapse?» ( Попробуйте. ) filter: "(all administers:synapse)" |
appears_in | "персонажи Волшебной флейты" ( Попробуйте. )filter: "(all appears_in:"magic flute")" filter: "(all appears_in:"Die Zauberflöte")" lang: "de" |
broader_than | «линия самолетов, к которой принадлежит Airbus 319» ( Попробуйте. ) filter: "(all broader_than:"Airbus A319")" |
category | "французские актрисы" ( Попробуйте. )filter: "(all category:female origin:france notable:actor)" filter: "(all category:female origin:france practitioner_of:actor)" filter: "(all category:volcano (any part_of:california part_of:france))" "блюда из пасты" ( Попробуйте. ) filter: "(all category:pasta)" |
center | "авиакомпании с хабом в Сан-Франциско" ( Попробуйте. )filter: "(all type:airline center:"San Francisco")" filter: "(all type:airline center:"San Francisco" center:atlanta)" filter: "(all type:/book/newspaper center:/m/0d6lp)" |
center_for | "спортивные сооружения для команды "Сан-Франциско 49ers"" ( Попробуйте. ) filter: "(all center_for:"san francisco 49ers")" |
certification | «Фильмы Вима Вендерса с рейтингом R» ( Попробуйте. ) filter: "(all type:/film/film contributor:wenders certification:r)" |
character | «произведения, в которых Папагено является персонажем» ( Попробуйте. ) filter: "(all character:papageno)" |
child | "родители Билла Клинтона" ( Попробуйте. ) filter: "(all child:"bill clinton")" |
contributed_to | «Кто участвовал в создании фильма «Бегущий по лезвию»?» ( Попробуйте. ) filter: "(all contributed_to:"Blade Runner")" |
contributor | "фильмы Стивена Спилберга" ( Попробуйте. )filter: "(all type:/film/film contributor:"Steven Spielberg")" filter: "(all type:/film/film contributor:/m/06pj8)" filter: "(all type:/film/film contributor:"Harrison Ford")" |
Подсчет очков и рейтинг
Сущности Freebase имеют встроенный рейтинг релевантности (рейтинг), который рассчитывается во время индексации и является функцией количества входящих и исходящих ссылок в Freebase и Википедии. Некоторые популярные сущности Freebase также имеют рейтинг популярности, рассчитываемый Google. По умолчанию оба рейтинга суммируются при выполнении запросов.
При наличии текстового ограничения оценка текстового соответствия вычисляется на основе количества совпадений, возвращенных поисковым индексом, и объединяется с оценкой релевантности.
Результаты FreebaseSearch всегда сортируются по итоговому баллу, начиная с наивысшего балла.
Параметр оценки позволяет контролировать, какие компоненты оценки релевантности используются для вычисления окончательной оценки:
freebase : использовать только оценку релевантности Freebase.
query: "beyoncé" scoring: freebase
entity : использовать оба показателя релевантности, заменяя все отсутствующие показатели Google на 1,0. Это значение по умолчанию.
query: "beyoncé" scoring: entity
Схема : используется при поиске сущностей схемы, таких как типы, свойства или домены. Количество ссылок сущностей схемы рассчитывается иначе.
query: "performance" scoring: schema
Другие ограничения
Сущности можно фильтровать по тегу индекса с использованием параметров with или without. Сущности помечаются тегами во время индексации, каждый тег соответствует одному или нескольким запросам Freebase, выполнение которых в процессе поиска было бы слишком затратно:
commons
— это тег, который можно использовать для ограничения поиска по схеме, чтобы возвращать только схему Freebase Commons. Например, типы Freebase Commons соответствуют слову «color».
query: "color" type: "/type/type" with: "commons"
gg
— это тег, который можно использовать для ограничения поиска сущностями, для которых есть или нет рейтинг популярности Google.
query: "1923" type: "/people/person" with: "gg" query: "1923" type: "/people/person" without: "gg"
Параметр without
эквивалентен a с отрицанием в выражении фильтра.
query: "color" limit: 5 type: "/type/type" without: "commons" query: "color" limit: 5 type: "/type/type" filter: "(not with:commons)"