Linkedin API: ищем наиболее эффективный способ поиска по большому списку людей

Я пытаюсь найти наиболее оптимальный способ поиска по списку имен в LinkedIn. Например, если у вас есть список из 150 человек, и чтобы не достичь предела дросселирования в 100, запросы должны быть каким-то образом объединены. До сих пор я придумал следующий синтаксис, используя JavaScript API:

IN.API.PeopleSearch()
    .fields("id", "first-name", "last-name", "positions", ...)
    .params({
        "first-name": firstname1 OR firstname2 OR firstname3, 
        "last-name": lastname1 OR lastname2 OR lastname3
        ...
    })

Что, в некотором роде, работает, но при таком поиске возникают следующие проблемы:

  1. «Джон Смит» и «Хуан Карлос» также вернут «Джона Карлоса» и «Хуана Смита». Это означает, что ответ становится все больше и больше, поскольку одновременно ищется все больше имен, и требуется больше запросов, чтобы получить весь список результатов. Эти данные также необходимо обрабатывать, чтобы отфильтровать нежелательные результаты. Это не проблема, но может использовать ненужное количество запросов, если есть лучшее решение.
  2. Из-за первой проблемы людей нужно искать группой в разумных количествах - где-то скажем 3-10 человек.

Со списком из 150 человек моего текущего решения, вероятно, было бы достаточно, но если что-то пойдет не так и нужно будет снова искать тот же список, то лимит, вероятно, уже будет достигнут, и до завтра снова поискать в том же списке будет невозможно. .

Есть ли лучшее решение, которое я еще не нашел, для оптимизации количества запросов?


person Artur K.    schedule 06.10.2013    source источник


Ответы (1)


У меня не было возможности проверить, работает ли это, но я предлагаю попробовать использовать параметр keywords вместо first-name и last-name.

Согласно документации, keywords параметра соответствуют:

Участники, у которых в профиле есть все ключевые слова. Используйте это поле, если вы не знаете, как более точно сопоставить ввод с более конкретным параметром. (Не забудьте URL-кодировать эти данные.)

Если в значениях параметров работает оператор OR, поиск выглядит так:

IN.API
.PeopleSearch()
.fields("id", "first-name", "last-name", "positions", ...)
.params({
    "keywords": "firstname1%20lastname1" OR "firstname2%20lastname2" (etc...) 
})

должен делать то, что вы хотите.

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

Примечание. документация (ссылка выше) рекомендует искать людей следующим образом (в качестве альтернативы):

Если у вас есть полное имя, например Эндрю Кларк, и вы не знаете, как лучше всего разделить его на поля имени и фамилии, вместо этого передайте его как ключевое слово.

person Michał Rybak    schedule 14.10.2013
comment
Эм-м-м. Только что проверил это, и похоже (по крайней мере, для не премиум-аккаунта) поиск по ключевым словам находит только людей с подключением 1-й или 2-й степени. Вероятно, это не то, что вы хотите, но я оставлю свой ответ здесь, чтобы вы могли проверить его самостоятельно :) - person Michał Rybak; 15.10.2013
comment
Спасибо за время и ответ. Но на самом деле недостатком является то, что, как вы уже сказали, возвращаются связи только первой и второй степени. - person Artur K.; 15.10.2013