2019-12-03 00:00:00Z
Last time we talked about how we built a parser that can take a string input (written in Jobs Query Language or JQL) and parse it into an abstract syntax tree (AST) representing the query.
This episode explores the reasons why we would do this and what we can do with the tree once we have it.
Syntax Tree Uses We could take an input string representing JQL and directly translate into a query against our data store (in our case Elasticsearch) but we choose to represent it as an abstract syntax tree instead.
Read more…2019-05-10 17:40:00Z
In Part 1 we talked about some of the shortcomings of Stack Overflow’s job search and how we planned to address them. In this episode we’ll dive into how our parser is written.
Some Background Most people seem to get scared the moment the words lexer or parser get mentioned. I’d highly recommend watching Rob Pike’s talk on the Go lexer and parser; it clears up a lot of misconceptions and provides a solid basis for writing a hand-rolled parser.
Read more…2019-05-10 00:00:00Z
Stack Overflow Jobs has always had the ability to perform searches across jobs on the site and, until a couple of years ago, used a simplistic implementation that served us well for a long time. It did have its quirks, however, and solicited a fair amount of feedback on our meta sites (Meta Stack Exchange and Stack Overflow Meta) from developers feeling that they were unable to really filter things the way they want to… And that didn’t really sit too well with us!
Read more…