как перепроектировать идентификаторы сущности Google - PullRequest
0 голосов
/ 06 мая 2019

В настоящее время Google везде использует сущности, и они обычно имеют префикс / m / и / g / (но я также видел некоторые / t / в последнее время)

Мне интересно, как работает нумерация.Для / m / существует схема, аналогичная тому, что делает укороченный URL.Определить алфавит (в случае / m / это 32 символа "0123456789bcdfghjklmnpqrstvwxyz_" и преобразовать число в "короткий URL"

например / m / 0 4swd <-> 156524 ("/ m / 0"кажется, это своего рода префикс)

Я застрял с / g / ID, хотя. Я создал разумный алфавит из идентификаторов, которые я видел "0123456789bcdfghjklmnpqrstvwxyz_", но я не могу заставить его работать.

Поскольку Google выполняет некоторые преобразования, поэтому у меня есть один реальный пример: / g / 11b6377dzp <-> 576462201963131861

из этого: Поиск в Google

НоЯ до сих пор не могу понять это.

Меня больше всего интересует процесс, как справиться с этой проблемой обратного инжиниринга (и, конечно же, результатом). Есть идеи?

1 Ответ

0 голосов
/ 07 мая 2019

Вы указали один и тот же алфавит для обоих случаев, но ваш вопрос подразумевает, что они разные.Кроме того, вот описание двух схем кодирования.

Цитата из Freebase developer wiki , вот кодировка для идентификатора машины:

Ключисгенерированных машиной идентификаторов - это короткие последовательности переменной длины символов, состоящие из цифр, букв нижнего регистра, исключая гласные, и подчеркивания.... (Избегая гласных, мы надеемся избежать случайного [sic] генерирования оскорбительных идентификаторов.) Mids также являются URL-безопасными, то есть они не требуют использования экранирования или эскалации в URL.

Идентификаторы графа знаний Google находятся в отдельном пространстве имен с префиксом "/ g / 1", как вы заметили, и их форматом, в соответствии с соответствующей страницей свойств Wikidata is

\/g\/1[0-9a-np-z][0-9a-np-z_]{6,8}

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

...