Transcript
Page 1: Extração de informação no StackOverflow Careers

EXTRAÇÃO DE INFORMAÇÃO NOSTACKOVERFLOW CAREERS

Roberta Arcoverde / @rla4.Net Architects Days 2014

Page 2: Extração de informação no StackOverflow Careers

/WHOIS ROBERTArecifensecientista da computação, UFPE, 2008mestre em informática, PUC-Rio, 2012participante do DNA desde 2008developer, Radix, 2010-2014full-stack web developer, Stack Exchange, 20141a mulher palestrando no DNAD :O :O :O

Page 3: Extração de informação no StackOverflow Careers

começou em 20083MM usuários registrados50MM visitantes únicos por mês2000-3000 hits por segundotop 50 sites mais acessados do mundo*

*segundo o Alexa. sei lá se é verdade. deve ser.

Page 4: Extração de informação no StackOverflow Careers
Page 5: Extração de informação no StackOverflow Careers

TUDO ISSO COM APENAS 9 SERVIDORES

Page 6: Extração de informação no StackOverflow Careers

350k usuários registrados (~200k com um perfil/CV)

~3000 vagas ativas/dia

Page 7: Extração de informação no StackOverflow Careers

PRINCIPAL OBJETIVOAjudar empresas diferenciadas a encontrar profissionais

também diferenciados(e vice-versa!)

Page 8: Extração de informação no StackOverflow Careers

...MAS AINDA SÃO MUITOS USUÁRIOS!

Page 9: Extração de informação no StackOverflow Careers

TAG ENGINE FOR THE RESCUE!Perguntas no StackOverflow são associadas a tags

Mesma ideia aplicada ao Careers, mas ao invés de perguntas erespostas, taggeamos CVs!

Page 10: Extração de informação no StackOverflow Careers

NEM SÓ DE TAG VIVE O CANDIDATO1. Como buscar por OSS? E por empregador?2. Mike and also Michael?3. Google and not Google?4. Por que este candidato foi retornado na minha busca?

Page 11: Extração de informação no StackOverflow Careers

CV == DOCUMENTO

Page 12: Extração de informação no StackOverflow Careers

ELASTICSEARCHEngine de análise, indexação e busca

Usa Lucene internamente

Restful API, document database (JSON)

Cluster de 3 servidores

Page 13: Extração de informação no StackOverflow Careers
Page 14: Extração de informação no StackOverflow Careers

"_source": { "cvId": 195731, "stackExchangeAnswersTags": [ "c#", "javascript", ".net" ], "likeTags": [ "c#", "programming-languages", "functional-programming", "compiler", "java", "haskell", "javascript", "tdd", "aspect-oriented", "asp.net-mvc" ], "projects": [], "yearsOfExperienceTags": [ "aop", "architecture", "asp.net", "asp.net-mvc", "c#", "html5", "iis", "javascript", "jquery", "knockout.js", "msbuild", "nunit",

Page 15: Extração de informação no StackOverflow Careers

HABEMUS DOCUMENTOSterm queries vs filters

contexto (snippets)

rankingmike == michael, ruby on rails == ror

...mas nada de busca avançada

Page 16: Extração de informação no StackOverflow Careers
Page 17: Extração de informação no StackOverflow Careers

CQLBuscas mais poderosas e flexíveis lembram do Google and not Google?

gmail search

google drive search

trello search

Page 18: Extração de informação no StackOverflow Careers

FINALMENTE, A 'ARQUITETURA'

Page 19: Extração de informação no StackOverflow Careers

CQLBoolean queries

Operadores específicos

Include/exclude

(c# or java) and not manager

education:(Stanford, MIT, Xavier's School for Gifted Yougsters)

ex:students,remote

Page 20: Extração de informação no StackOverflow Careers
Page 21: Extração de informação no StackOverflow Careers

IMPLEMENTAÇÃO(c# or java) and employer:microsoft

Page 22: Extração de informação no StackOverflow Careers

LEXERchar-buffering

(c# or java) and employer:microsoft

LPAREN Term OR RPAREN AND OperatorCOLON Term

Page 23: Extração de informação no StackOverflow Careers

PARSERtop-down, descendente recursivo

LPAREN Term OR RPAREN AND OperatorCOLON Term

Page 24: Extração de informação no StackOverflow Careers

CQL(c# or java) and

employer:microsoft

TERM QUERY"query":"((c# OR java)ANDexperienceName:microsoft)"

exclude:student

"must":["term": {"isStudent": { "value":"false" }} ]

Page 25: Extração de informação no StackOverflow Careers

FRESCURINHAS FINAISSYNTAX HIGHLIGHTING

AUTOCOMPLETE1-WAY BINDING

Page 26: Extração de informação no StackOverflow Careers
Page 27: Extração de informação no StackOverflow Careers

RESULTADOS LEGAISBUSCA FICOU > 30% MAIS RÁPIDA

NÚMERO DE CANDIDATE SEARCH SUBSCRIPTIONS DOBROU (!)

Page 28: Extração de informação no StackOverflow Careers

OBRIGADA :)