Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled

63

description

In a recent project with the United States Patent and Trademark Office, Opensource Connections was asked to prototype the next generation of patent search - using Solr and Lucene. An important aspect of this project was the implementation of BRS, a specialized search syntax used by patent examiners during the examination process. In this fast paced session we will relate our experiences and describe how we used a combination of Parboiled (a Parser Expression Grammar [PEG] parser), Lucene Queries and SpanQueries, and an extension of Solr's QParserPlugin to build BRS search functionality in Solr. First we will characterize the patent search problem and then define the BRS syntax itself. We will then introduce the Parboiled parser and discuss various considerations that one must make when designing a syntax parser. Following this we will describe the methodology used to implement the search functionality in Lucene/Solr. Finally, we will include an overview our syntactic and semantic testing strategies. The audience will leave this session with an understanding of how Solr, Lucene, and Parboiled may be used to implement their own custom search parser.

Transcript of Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled

Page 1: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 2: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 3: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 4: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 5: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 6: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 7: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 8: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 9: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 10: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 11: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 12: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 13: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 14: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 15: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 16: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 17: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 18: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 19: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 20: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 21: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 22: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 23: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 24: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 25: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 26: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 27: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 28: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 29: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 30: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 31: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 32: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 33: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 34: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 35: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 36: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 37: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 38: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 39: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 40: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 41: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 42: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 43: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 44: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 45: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 46: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 47: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 48: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 49: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 50: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 51: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 52: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 53: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 54: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 55: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 56: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 57: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 58: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 59: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 60: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 61: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 62: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Page 63: Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled