SlideShare a Scribd company logo
1 of 39
Searching The United States Code with Solr/Lucene Paul Nelson / Ronald Matamoros, Search Technologies pnelson@searchtechnologies.com, 5/25/2011 [email_address]
Searching the  United States Code ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Search Technologies ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
A Quick Civics Lesson… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Major Challenges ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
screenshot
screenshot
screenshot
Part The First:  Document Processing
Document Processing / Indexing USC Title Parse & Granularize Repository Construct XHTML Store Xform & Index Solr Embed Refs
Field Type 1:  Extracted to Index <!-- documentid:14_1  usckey:140000000000100000000000000000000 currentthrough:20080108 documentPDFPage:3 --> <!-- itempath:/140/PART I/CHAPTER 1/Sec. 1 --> <!-- itemsortkey:140AAAD --> <!-- expcite:TITLE 14-COAST GUARD!@!PART I-REGULAR COAST GUARD!@!CHAPTER 1-ESTABLISHMENT AND DUTIES!@!Sec. 1 --> <!-- field-start:head --><h3 class=&quot;section-head&quot;>&sect;1. Establishment of Coast Guard</h3> <!-- field-end:head --> <!-- field-start:statute --> <p class=&quot;statutory-body&quot;>The Coast Guard as established January 28, 1915, shall be a military … <!-- field-end:statute --> <!-- field-start:sourcecredit --> <p class=&quot;source-credit&quot;>(Aug. 4, 1949, ch. 393, 63 Stat. 496; Pub. L. 94&ndash;546, &sect;1(1),… <!-- field-end:sourcecredit --> <!-- field-start:notes --> <!-- field-start:historicalandrevision-note --> <h4 class=&quot;note-head&quot;>Historical and Revision Notes</h4> <p class=&quot;note-body&quot;>Based on title 14, U.S.C., 1946 ed., &sect;1 (Jan. 28, 1915, ch. 20, &sect;1… <!-- field-end:historicalandrevision-note --> <!-- field-start:amendment-note --> <h4 class=&quot;note-head&quot;>Amendments</h4> <p class=&quot;note-body&quot;>2002&mdash;Pub. L. 107&ndash;296 substituted &ldquo;Department of … <!-- field-end:amendment-note --> <!-- field-start:effectivedate-amendment-note --> <h4 class=&quot;note-head&quot;>Effective Date of 2002 Amendment</h4> <p class=&quot;note-body&quot;>Amendment by Pub. L. 107&ndash;296 effective on the date of transfer of … Page Numbers Title Heading Source Credit
Document Processing / Indexing Title 14 ch. 1  ch. 2  ch. 3  pt. A  pt. B  pt. C  sec. 1  sec. 2  sec. 3  … … … USC Title Parse & Granularize Repository Construct XHTML Store Xform & Index Solr Embed Refs
Field Type 2:  Embedded Refs <!-- documentid:14_1  usckey:140000000000100000000000000000000 currentthrough:20080108 documentPDFPage:3 --> <!-- itempath:/140/PART I/CHAPTER 1/Sec. 1 --> <!-- itemsortkey:140AAAD --> <!-- expcite:TITLE 14-COAST GUARD!@!PART I-REGULAR COAST GUARD!@!CHAPTER 1-ESTABLISHMENT AND DUTIES!@!Sec. 1 --> <!-- field-start:head --><h3 class=&quot;section-head&quot;>&sect;1. Establishment of Coast Guard</h3> <!-- field-end:head --> <!-- field-start:statute --> <p class=&quot;statutory-body&quot;>The Coast Guard as established January 28, 1915, shall be a military … <!-- field-end:statute --> <!-- field-start:sourcecredit --> <p class=&quot;source-credit&quot;>(Aug. 4, 1949, ch. 393, 63 Stat. 496; Pub. L. 94&ndash;546, &sect;1(1),… <!-- field-end:sourcecredit --> <!-- field-start:notes --> <!-- field-start:historicalandrevision-note --> <h4 class=&quot;note-head&quot;>Historical and Revision Notes</h4> <p class=&quot;note-body&quot;>Based on title 14, U.S.C., 1946 ed., &sect;1 (Jan. 28, 1915, ch. 20, &sect;1… <!-- field-end:historicalandrevision-note --> <!-- field-start:amendment-note --> <h4 class=&quot;note-head&quot;>Amendments</h4> <p class=&quot;note-body&quot;>2002&mdash;Pub. L. 107&ndash;296 substituted &ldquo;Department of … <!-- field-end:amendment-note --> <!-- field-start:effectivedate-amendment-note --> <h4 class=&quot;note-head&quot;>Effective Date of 2002 Amendment</h4> <p class=&quot;note-body&quot;>Amendment by Pub. L. 107&ndash;296 effective on the date of transfer of … Public Law Other USC Refs Statute at Large Public Law Public Law
Document Processing / Indexing USC Title Parse & Granularize Repository Construct XHTML Store Xform & Index Solr Embed Refs
Document Processing / Indexing USC Title Parse & Granularize Repository Construct XHTML Store Xform & Index Solr Embed Refs ,[object Object],[object Object],[object Object],[object Object],[object Object]
Part The Second:  Token Processing
Token Processing 1 ,[object Object],<!-- field-start:amendment-note --> <h4 class=&quot;note-head&quot;>Amendments</h4> <p class=&quot;note-body&quot;>2002&mdash;Pub. L. 107&ndash;296 substituted &ldquo;Department of … <!-- field-end:amendment-note --> <!-- field-start:amendment-note --> <h4 class=&quot;note-head&quot;> Amendments </h4> <p class=&quot;note-body&quot;> 2002 Pub L 107 296 Substituted Department of <!-- field-end:amendment-note -->
Field Type 3:  Marked Within Doc <!-- documentid:14_1  usckey:140000000000100000000000000000000 currentthrough:20080108 documentPDFPage:3 --> <!-- itempath:/140/PART I/CHAPTER 1/Sec. 1 --> <!-- itemsortkey:140AAAD --> <!-- expcite:TITLE 14-COAST GUARD!@!PART I-REGULAR COAST GUARD!@!CHAPTER 1-ESTABLISHMENT AND DUTIES!@!Sec. 1 --> <!-- field-start:head --><h3 class=&quot;section-head&quot;>&sect;1. Establishment of Coast Guard</h3> <!-- field-end:head --> <!-- field-start:statute --> <p class=&quot;statutory-body&quot;>The Coast Guard as established January 28, 1915, shall be a military … <!-- field-end:statute --> <!-- field-start:sourcecredit --> <p class=&quot;source-credit&quot;>(Aug. 4, 1949, ch. 393, 63 Stat. 496; Pub. L. 94&ndash;546, &sect;1(1),… <!-- field-end:sourcecredit --> <!-- field-start:notes --> <!-- field-start:historicalandrevision-note --> <h4 class=&quot;note-head&quot;>Historical and Revision Notes</h4> <p class=&quot;note-body&quot;>Based on title 14, U.S.C., 1946 ed., &sect;1 (Jan. 28, 1915, ch. 20, &sect;1… <!-- field-end:historicalandrevision-note --> <!-- field-start:amendment-note --> <h4 class=&quot;note-head&quot;>Amendments</h4> <p class=&quot;note-body&quot;>2002&mdash;Pub. L. 107&ndash;296 substituted &ldquo;Department of … <!-- field-end:amendment-note --> <!-- field-start:effectivedate-amendment-note --> <h4 class=&quot;note-head&quot;>Effective Date of 2002 Amendment</h4> <p class=&quot;note-body&quot;>Amendment by Pub. L. 107&ndash;296 effective on the date of transfer of …
Token Processing 2 ,[object Object],S/amendment <h4 class=&quot;note-head&quot;> Amendments </h4> <p class=&quot;note-body&quot;> 2002 Pub L 107 296 Substituted Department of E/amendment <!-- field-start:amendment-note --> <h4 class=&quot;note-head&quot;> Amendments </h4> <p class=&quot;note-body&quot;> 2002 Pub L 107 296 Substituted Department of <!-- field-end:amendment-note -->
Token Processing 3 ,[object Object],S/amendment Amendments 2002 Pub L 107 296 Substituted Department of E/amendment S/amendment <h4 class=&quot;note-head&quot;> Amendments </h4> <p class=&quot;note-body&quot;> 2002 Pub L 107 296 Substituted Department of E/amendment
Token Processing 4 ,[object Object],S/amendment O/Amendments L/amendments O/2002 L/2002 O/Pub L/pub O/L L/l O/107 L/107 O/296 L/296 O/Substituted L/substituted O/Department L/department O/of L/of E/amendment S/amendment Amendments 2002 Pub L 107 296 Substituted Department of E/amendment
Token Processing 5 ,[object Object],[object Object],S/amendment O/Amendments L/amendments amendment O/2002 L/2002 2002 O/Pub L/Pub pub O/L L/l; l O/107 L/107 107 O/296 L/296 296 O/Substituted L/Substituted substitute O/Department L/Department department O/of L/of of E/amendment S/amendment O/Amendments L/amendments O/2002 L/2002 O/Pub L/pub O/L L/l O/107 L/107 O/296 L/296 O/Substituted L/substituted O/Department L/department O/of L/of E/amendment
Part The Third:  Query Processing
Query Processing parse mark phrases lemmatize query template build lucene query mark exact: Query String search ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],(not all stages shown)
Query Processing parse mark lowercase lemmatize query template build lucene query mark original Query String search and exact: |FOIA| phrase |top| |secret| amendment: |RECORDS| exact:FOIA “top secret” amendment:RECORDS
Query Processing parse mark lowercase lemmatize query template build lucene query mark original Query String search and O/FOIA phrase |top| |secret| amendment: exact:FOIA “top secret” amendment:RECORDS |RECORDS|
Query Processing parse mark lowercase lemmatize query template build lucene query mark original Query String search and O/FOIA phrase |L/top| |L/secret| amendment: exact:FOIA “top secret” amendment:RECORDS |records|
Query Processing parse mark lowercase lemmatize query template build lucene query mark original Query String search and O/FOIA phrase |L/top| |L/secret| amendment: exact:FOIA “top secret” amendment:RECORDS |record|
Query Processing parse mark lowercase lemmatize query template build lucene query mark original Query String search and O/FOIA phrase |L/top| |L/secret| between exact:FOIA “top secret” amendment:RECORDS E/amendment S/amendment |record|
The between() Operator ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Part the Fourth:  Hierarchical Navigation
screenshot
Hierarchies:  Requirements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hierarchies:  Ancestor-Siblings ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hierarchies:  Fields ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hierarchies:  Tree Sort ,[object Object],[object Object],[object Object],01/011/1/02032 01 = USC Title 011 = Title 11 1 = An Appendix Sequence # in file
Hierarchies:  Sample Searches ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Contact ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

Viewers also liked

Ahorro De Costes Con Esso. Best Practices
Ahorro De Costes Con Esso. Best PracticesAhorro De Costes Con Esso. Best Practices
Ahorro De Costes Con Esso. Best PracticesJosep Bardallo
 
Informe sobre el proceso de reestructuración del Servicio Andaluz de Empleo. ...
Informe sobre el proceso de reestructuración del Servicio Andaluz de Empleo. ...Informe sobre el proceso de reestructuración del Servicio Andaluz de Empleo. ...
Informe sobre el proceso de reestructuración del Servicio Andaluz de Empleo. ...losotrostrabajadores
 
Sambucetti - Los números de ecommerce en Argentina - córdoba - 2015
Sambucetti - Los números de ecommerce en Argentina - córdoba - 2015Sambucetti - Los números de ecommerce en Argentina - córdoba - 2015
Sambucetti - Los números de ecommerce en Argentina - córdoba - 2015Seba Gelp
 
Plan Nacional de Gestión del Riesgo de Tsunami en Colombia
Plan Nacional de Gestión del Riesgo de Tsunami en ColombiaPlan Nacional de Gestión del Riesgo de Tsunami en Colombia
Plan Nacional de Gestión del Riesgo de Tsunami en ColombiaRodrigo A Restrepo G
 
Apresentação comercial 2013 espanhol
Apresentação comercial 2013 espanholApresentação comercial 2013 espanhol
Apresentação comercial 2013 espanholElog Logística
 
Paetes prinsipales del torno
Paetes prinsipales del tornoPaetes prinsipales del torno
Paetes prinsipales del tornoDiegitolive96
 
dispositivo de almacenamiento, cassette
dispositivo de almacenamiento, cassette dispositivo de almacenamiento, cassette
dispositivo de almacenamiento, cassette operaciondelequipo
 
Informe sobre tabaco, gripe e infecciones respiratorias
Informe sobre tabaco, gripe e infecciones respiratoriasInforme sobre tabaco, gripe e infecciones respiratorias
Informe sobre tabaco, gripe e infecciones respiratoriasAngel López Hernanz
 
Pelargonium sidoides - Hedera helix. Un Compendio de la Evidencia
Pelargonium sidoides - Hedera helix.  Un Compendio de la EvidenciaPelargonium sidoides - Hedera helix.  Un Compendio de la Evidencia
Pelargonium sidoides - Hedera helix. Un Compendio de la EvidenciaFrank Cajina Gómez
 
Campus Inteligente para la UJI- CE13
Campus Inteligente para la UJI- CE13Campus Inteligente para la UJI- CE13
Campus Inteligente para la UJI- CE13Esri
 
Co-op Advertising: Digital's Lost Opportunity
Co-op Advertising: Digital's Lost OpportunityCo-op Advertising: Digital's Lost Opportunity
Co-op Advertising: Digital's Lost OpportunityRebecca Lieb
 
Bryson. chapter 8 . establishing an effective organizational vision for the f...
Bryson. chapter 8 . establishing an effective organizational vision for the f...Bryson. chapter 8 . establishing an effective organizational vision for the f...
Bryson. chapter 8 . establishing an effective organizational vision for the f...Beulah Heights University
 
Legislación Laboral en China.
Legislación Laboral en China.Legislación Laboral en China.
Legislación Laboral en China.El Arcón de Clio
 
Grand Plaza Hotel
Grand Plaza HotelGrand Plaza Hotel
Grand Plaza HotelBARIS KALAN
 

Viewers also liked (20)

Ahorro De Costes Con Esso. Best Practices
Ahorro De Costes Con Esso. Best PracticesAhorro De Costes Con Esso. Best Practices
Ahorro De Costes Con Esso. Best Practices
 
80li yıllar
80li yıllar80li yıllar
80li yıllar
 
Comu
ComuComu
Comu
 
Informe sobre el proceso de reestructuración del Servicio Andaluz de Empleo. ...
Informe sobre el proceso de reestructuración del Servicio Andaluz de Empleo. ...Informe sobre el proceso de reestructuración del Servicio Andaluz de Empleo. ...
Informe sobre el proceso de reestructuración del Servicio Andaluz de Empleo. ...
 
Sambucetti - Los números de ecommerce en Argentina - córdoba - 2015
Sambucetti - Los números de ecommerce en Argentina - córdoba - 2015Sambucetti - Los números de ecommerce en Argentina - córdoba - 2015
Sambucetti - Los números de ecommerce en Argentina - córdoba - 2015
 
Plan Nacional de Gestión del Riesgo de Tsunami en Colombia
Plan Nacional de Gestión del Riesgo de Tsunami en ColombiaPlan Nacional de Gestión del Riesgo de Tsunami en Colombia
Plan Nacional de Gestión del Riesgo de Tsunami en Colombia
 
Biologia algas y protozoos
Biologia algas y protozoosBiologia algas y protozoos
Biologia algas y protozoos
 
Apresentação comercial 2013 espanhol
Apresentação comercial 2013 espanholApresentação comercial 2013 espanhol
Apresentação comercial 2013 espanhol
 
Paetes prinsipales del torno
Paetes prinsipales del tornoPaetes prinsipales del torno
Paetes prinsipales del torno
 
Tpp filtek z350 xt
Tpp filtek z350 xtTpp filtek z350 xt
Tpp filtek z350 xt
 
dispositivo de almacenamiento, cassette
dispositivo de almacenamiento, cassette dispositivo de almacenamiento, cassette
dispositivo de almacenamiento, cassette
 
El dia del ahorro de energia
El dia del ahorro de energiaEl dia del ahorro de energia
El dia del ahorro de energia
 
Informe sobre tabaco, gripe e infecciones respiratorias
Informe sobre tabaco, gripe e infecciones respiratoriasInforme sobre tabaco, gripe e infecciones respiratorias
Informe sobre tabaco, gripe e infecciones respiratorias
 
Pelargonium sidoides - Hedera helix. Un Compendio de la Evidencia
Pelargonium sidoides - Hedera helix.  Un Compendio de la EvidenciaPelargonium sidoides - Hedera helix.  Un Compendio de la Evidencia
Pelargonium sidoides - Hedera helix. Un Compendio de la Evidencia
 
Campus Inteligente para la UJI- CE13
Campus Inteligente para la UJI- CE13Campus Inteligente para la UJI- CE13
Campus Inteligente para la UJI- CE13
 
Co-op Advertising: Digital's Lost Opportunity
Co-op Advertising: Digital's Lost OpportunityCo-op Advertising: Digital's Lost Opportunity
Co-op Advertising: Digital's Lost Opportunity
 
Bryson. chapter 8 . establishing an effective organizational vision for the f...
Bryson. chapter 8 . establishing an effective organizational vision for the f...Bryson. chapter 8 . establishing an effective organizational vision for the f...
Bryson. chapter 8 . establishing an effective organizational vision for the f...
 
Legislación Laboral en China.
Legislación Laboral en China.Legislación Laboral en China.
Legislación Laboral en China.
 
Grand Plaza Hotel
Grand Plaza HotelGrand Plaza Hotel
Grand Plaza Hotel
 
Bachoco 1[1]
Bachoco 1[1]Bachoco 1[1]
Bachoco 1[1]
 

Similar to Searching The United States Code with Solr/Lucene - By Ronald Matamoros

Searching The United States Code with Solr/Lucene
Searching The United States Code with Solr/LuceneSearching The United States Code with Solr/Lucene
Searching The United States Code with Solr/LuceneLucidworks (Archived)
 
02. session 02 working with html elements
02. session 02   working with html elements02. session 02   working with html elements
02. session 02 working with html elementsPhúc Đỗ
 
Creative Commons @ Seybold San Francisco 2004 - DRM Roundtable
Creative Commons @ Seybold San Francisco 2004 - DRM RoundtableCreative Commons @ Seybold San Francisco 2004 - DRM Roundtable
Creative Commons @ Seybold San Francisco 2004 - DRM RoundtableMike Linksvayer
 
Agile Descriptions
Agile DescriptionsAgile Descriptions
Agile DescriptionsTony Hammond
 
Xml Applications Libraries
Xml Applications LibrariesXml Applications Libraries
Xml Applications Librarieslibrarywebchic
 
Doctype htmlcodigioooooo
Doctype htmlcodigiooooooDoctype htmlcodigioooooo
Doctype htmlcodigiooooooANDERSON FABIAN
 
HTML5 - What h#@$ is it?
HTML5 - What h#@$ is it?HTML5 - What h#@$ is it?
HTML5 - What h#@$ is it?Carlos Ramon
 
Douglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaDouglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaAjax Experience 2009
 
Html Intro2
Html Intro2Html Intro2
Html Intro2mlackner
 
Cross Media from 2001 | a good vision?
Cross Media from 2001 | a good vision?Cross Media from 2001 | a good vision?
Cross Media from 2001 | a good vision?Blockchainizator
 
Struts2 course chapter 2: installation and configuration
Struts2 course chapter 2: installation and configurationStruts2 course chapter 2: installation and configuration
Struts2 course chapter 2: installation and configurationJavaEE Trainers
 

Similar to Searching The United States Code with Solr/Lucene - By Ronald Matamoros (20)

Searching The United States Code with Solr/Lucene
Searching The United States Code with Solr/LuceneSearching The United States Code with Solr/Lucene
Searching The United States Code with Solr/Lucene
 
02. session 02 working with html elements
02. session 02   working with html elements02. session 02   working with html elements
02. session 02 working with html elements
 
QTI 2.1 and Common Cartridge
QTI 2.1 and Common CartridgeQTI 2.1 and Common Cartridge
QTI 2.1 and Common Cartridge
 
RESTFul IDEAS
RESTFul IDEASRESTFul IDEAS
RESTFul IDEAS
 
Embedded Metadata working group
Embedded Metadata working groupEmbedded Metadata working group
Embedded Metadata working group
 
Creative Commons @ Seybold San Francisco 2004 - DRM Roundtable
Creative Commons @ Seybold San Francisco 2004 - DRM RoundtableCreative Commons @ Seybold San Francisco 2004 - DRM Roundtable
Creative Commons @ Seybold San Francisco 2004 - DRM Roundtable
 
Using Forms in Share
Using Forms in ShareUsing Forms in Share
Using Forms in Share
 
Agile Descriptions
Agile DescriptionsAgile Descriptions
Agile Descriptions
 
Html5 Overview
Html5 OverviewHtml5 Overview
Html5 Overview
 
Html Ppt
Html PptHtml Ppt
Html Ppt
 
Xml Applications Libraries
Xml Applications LibrariesXml Applications Libraries
Xml Applications Libraries
 
Doctype htmlcodigioooooo
Doctype htmlcodigiooooooDoctype htmlcodigioooooo
Doctype htmlcodigioooooo
 
Alfresco Search Internals
Alfresco Search InternalsAlfresco Search Internals
Alfresco Search Internals
 
HTML5 - What h#@$ is it?
HTML5 - What h#@$ is it?HTML5 - What h#@$ is it?
HTML5 - What h#@$ is it?
 
Douglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation JsonsagaDouglas Crockford Presentation Jsonsaga
Douglas Crockford Presentation Jsonsaga
 
Html Intro2
Html Intro2Html Intro2
Html Intro2
 
HTML Fundamentals
HTML FundamentalsHTML Fundamentals
HTML Fundamentals
 
HTML & CSS
HTML & CSSHTML & CSS
HTML & CSS
 
Cross Media from 2001 | a good vision?
Cross Media from 2001 | a good vision?Cross Media from 2001 | a good vision?
Cross Media from 2001 | a good vision?
 
Struts2 course chapter 2: installation and configuration
Struts2 course chapter 2: installation and configurationStruts2 course chapter 2: installation and configuration
Struts2 course chapter 2: installation and configuration
 

More from lucenerevolution

Text Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and LuceneText Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and Lucenelucenerevolution
 
State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here! State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here! lucenerevolution
 
Building Client-side Search Applications with Solr
Building Client-side Search Applications with SolrBuilding Client-side Search Applications with Solr
Building Client-side Search Applications with Solrlucenerevolution
 
Integrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationsIntegrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationslucenerevolution
 
Scaling Solr with SolrCloud
Scaling Solr with SolrCloudScaling Solr with SolrCloud
Scaling Solr with SolrCloudlucenerevolution
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusterslucenerevolution
 
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and ParboiledImplementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiledlucenerevolution
 
Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs lucenerevolution
 
Enhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic searchEnhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic searchlucenerevolution
 
Real-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and StormReal-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and Stormlucenerevolution
 
Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?lucenerevolution
 
Schemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST APISchemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST APIlucenerevolution
 
High Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with LuceneHigh Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with Lucenelucenerevolution
 
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMText Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMlucenerevolution
 
Faceted Search with Lucene
Faceted Search with LuceneFaceted Search with Lucene
Faceted Search with Lucenelucenerevolution
 
Recent Additions to Lucene Arsenal
Recent Additions to Lucene ArsenalRecent Additions to Lucene Arsenal
Recent Additions to Lucene Arsenallucenerevolution
 
Turning search upside down
Turning search upside downTurning search upside down
Turning search upside downlucenerevolution
 
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...lucenerevolution
 
Shrinking the haystack wes caldwell - final
Shrinking the haystack   wes caldwell - finalShrinking the haystack   wes caldwell - final
Shrinking the haystack wes caldwell - finallucenerevolution
 

More from lucenerevolution (20)

Text Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and LuceneText Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and Lucene
 
State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here! State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here!
 
Search at Twitter
Search at TwitterSearch at Twitter
Search at Twitter
 
Building Client-side Search Applications with Solr
Building Client-side Search Applications with SolrBuilding Client-side Search Applications with Solr
Building Client-side Search Applications with Solr
 
Integrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationsIntegrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applications
 
Scaling Solr with SolrCloud
Scaling Solr with SolrCloudScaling Solr with SolrCloud
Scaling Solr with SolrCloud
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusters
 
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and ParboiledImplementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
 
Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs
 
Enhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic searchEnhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic search
 
Real-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and StormReal-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and Storm
 
Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?
 
Schemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST APISchemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST API
 
High Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with LuceneHigh Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with Lucene
 
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMText Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
 
Faceted Search with Lucene
Faceted Search with LuceneFaceted Search with Lucene
Faceted Search with Lucene
 
Recent Additions to Lucene Arsenal
Recent Additions to Lucene ArsenalRecent Additions to Lucene Arsenal
Recent Additions to Lucene Arsenal
 
Turning search upside down
Turning search upside downTurning search upside down
Turning search upside down
 
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
 
Shrinking the haystack wes caldwell - final
Shrinking the haystack   wes caldwell - finalShrinking the haystack   wes caldwell - final
Shrinking the haystack wes caldwell - final
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

Searching The United States Code with Solr/Lucene - By Ronald Matamoros

  • 1. Searching The United States Code with Solr/Lucene Paul Nelson / Ronald Matamoros, Search Technologies pnelson@searchtechnologies.com, 5/25/2011 [email_address]
  • 2.
  • 3.
  • 4.
  • 5.
  • 9.
  • 10. Part The First: Document Processing
  • 11. Document Processing / Indexing USC Title Parse & Granularize Repository Construct XHTML Store Xform & Index Solr Embed Refs
  • 12. Field Type 1: Extracted to Index <!-- documentid:14_1 usckey:140000000000100000000000000000000 currentthrough:20080108 documentPDFPage:3 --> <!-- itempath:/140/PART I/CHAPTER 1/Sec. 1 --> <!-- itemsortkey:140AAAD --> <!-- expcite:TITLE 14-COAST GUARD!@!PART I-REGULAR COAST GUARD!@!CHAPTER 1-ESTABLISHMENT AND DUTIES!@!Sec. 1 --> <!-- field-start:head --><h3 class=&quot;section-head&quot;>&sect;1. Establishment of Coast Guard</h3> <!-- field-end:head --> <!-- field-start:statute --> <p class=&quot;statutory-body&quot;>The Coast Guard as established January 28, 1915, shall be a military … <!-- field-end:statute --> <!-- field-start:sourcecredit --> <p class=&quot;source-credit&quot;>(Aug. 4, 1949, ch. 393, 63 Stat. 496; Pub. L. 94&ndash;546, &sect;1(1),… <!-- field-end:sourcecredit --> <!-- field-start:notes --> <!-- field-start:historicalandrevision-note --> <h4 class=&quot;note-head&quot;>Historical and Revision Notes</h4> <p class=&quot;note-body&quot;>Based on title 14, U.S.C., 1946 ed., &sect;1 (Jan. 28, 1915, ch. 20, &sect;1… <!-- field-end:historicalandrevision-note --> <!-- field-start:amendment-note --> <h4 class=&quot;note-head&quot;>Amendments</h4> <p class=&quot;note-body&quot;>2002&mdash;Pub. L. 107&ndash;296 substituted &ldquo;Department of … <!-- field-end:amendment-note --> <!-- field-start:effectivedate-amendment-note --> <h4 class=&quot;note-head&quot;>Effective Date of 2002 Amendment</h4> <p class=&quot;note-body&quot;>Amendment by Pub. L. 107&ndash;296 effective on the date of transfer of … Page Numbers Title Heading Source Credit
  • 13. Document Processing / Indexing Title 14 ch. 1 ch. 2 ch. 3 pt. A pt. B pt. C sec. 1 sec. 2 sec. 3 … … … USC Title Parse & Granularize Repository Construct XHTML Store Xform & Index Solr Embed Refs
  • 14. Field Type 2: Embedded Refs <!-- documentid:14_1 usckey:140000000000100000000000000000000 currentthrough:20080108 documentPDFPage:3 --> <!-- itempath:/140/PART I/CHAPTER 1/Sec. 1 --> <!-- itemsortkey:140AAAD --> <!-- expcite:TITLE 14-COAST GUARD!@!PART I-REGULAR COAST GUARD!@!CHAPTER 1-ESTABLISHMENT AND DUTIES!@!Sec. 1 --> <!-- field-start:head --><h3 class=&quot;section-head&quot;>&sect;1. Establishment of Coast Guard</h3> <!-- field-end:head --> <!-- field-start:statute --> <p class=&quot;statutory-body&quot;>The Coast Guard as established January 28, 1915, shall be a military … <!-- field-end:statute --> <!-- field-start:sourcecredit --> <p class=&quot;source-credit&quot;>(Aug. 4, 1949, ch. 393, 63 Stat. 496; Pub. L. 94&ndash;546, &sect;1(1),… <!-- field-end:sourcecredit --> <!-- field-start:notes --> <!-- field-start:historicalandrevision-note --> <h4 class=&quot;note-head&quot;>Historical and Revision Notes</h4> <p class=&quot;note-body&quot;>Based on title 14, U.S.C., 1946 ed., &sect;1 (Jan. 28, 1915, ch. 20, &sect;1… <!-- field-end:historicalandrevision-note --> <!-- field-start:amendment-note --> <h4 class=&quot;note-head&quot;>Amendments</h4> <p class=&quot;note-body&quot;>2002&mdash;Pub. L. 107&ndash;296 substituted &ldquo;Department of … <!-- field-end:amendment-note --> <!-- field-start:effectivedate-amendment-note --> <h4 class=&quot;note-head&quot;>Effective Date of 2002 Amendment</h4> <p class=&quot;note-body&quot;>Amendment by Pub. L. 107&ndash;296 effective on the date of transfer of … Public Law Other USC Refs Statute at Large Public Law Public Law
  • 15. Document Processing / Indexing USC Title Parse & Granularize Repository Construct XHTML Store Xform & Index Solr Embed Refs
  • 16.
  • 17. Part The Second: Token Processing
  • 18.
  • 19. Field Type 3: Marked Within Doc <!-- documentid:14_1 usckey:140000000000100000000000000000000 currentthrough:20080108 documentPDFPage:3 --> <!-- itempath:/140/PART I/CHAPTER 1/Sec. 1 --> <!-- itemsortkey:140AAAD --> <!-- expcite:TITLE 14-COAST GUARD!@!PART I-REGULAR COAST GUARD!@!CHAPTER 1-ESTABLISHMENT AND DUTIES!@!Sec. 1 --> <!-- field-start:head --><h3 class=&quot;section-head&quot;>&sect;1. Establishment of Coast Guard</h3> <!-- field-end:head --> <!-- field-start:statute --> <p class=&quot;statutory-body&quot;>The Coast Guard as established January 28, 1915, shall be a military … <!-- field-end:statute --> <!-- field-start:sourcecredit --> <p class=&quot;source-credit&quot;>(Aug. 4, 1949, ch. 393, 63 Stat. 496; Pub. L. 94&ndash;546, &sect;1(1),… <!-- field-end:sourcecredit --> <!-- field-start:notes --> <!-- field-start:historicalandrevision-note --> <h4 class=&quot;note-head&quot;>Historical and Revision Notes</h4> <p class=&quot;note-body&quot;>Based on title 14, U.S.C., 1946 ed., &sect;1 (Jan. 28, 1915, ch. 20, &sect;1… <!-- field-end:historicalandrevision-note --> <!-- field-start:amendment-note --> <h4 class=&quot;note-head&quot;>Amendments</h4> <p class=&quot;note-body&quot;>2002&mdash;Pub. L. 107&ndash;296 substituted &ldquo;Department of … <!-- field-end:amendment-note --> <!-- field-start:effectivedate-amendment-note --> <h4 class=&quot;note-head&quot;>Effective Date of 2002 Amendment</h4> <p class=&quot;note-body&quot;>Amendment by Pub. L. 107&ndash;296 effective on the date of transfer of …
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. Part The Third: Query Processing
  • 25.
  • 26. Query Processing parse mark lowercase lemmatize query template build lucene query mark original Query String search and exact: |FOIA| phrase |top| |secret| amendment: |RECORDS| exact:FOIA “top secret” amendment:RECORDS
  • 27. Query Processing parse mark lowercase lemmatize query template build lucene query mark original Query String search and O/FOIA phrase |top| |secret| amendment: exact:FOIA “top secret” amendment:RECORDS |RECORDS|
  • 28. Query Processing parse mark lowercase lemmatize query template build lucene query mark original Query String search and O/FOIA phrase |L/top| |L/secret| amendment: exact:FOIA “top secret” amendment:RECORDS |records|
  • 29. Query Processing parse mark lowercase lemmatize query template build lucene query mark original Query String search and O/FOIA phrase |L/top| |L/secret| amendment: exact:FOIA “top secret” amendment:RECORDS |record|
  • 30. Query Processing parse mark lowercase lemmatize query template build lucene query mark original Query String search and O/FOIA phrase |L/top| |L/secret| between exact:FOIA “top secret” amendment:RECORDS E/amendment S/amendment |record|
  • 31.
  • 32. Part the Fourth: Hierarchical Navigation
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.