{"id":56396,"date":"2016-05-19T19:00:00","date_gmt":"2016-05-19T16:00:00","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=56396"},"modified":"2016-05-19T10:16:02","modified_gmt":"2016-05-19T07:16:02","slug":"learning-lucene-2","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html","title":{"rendered":"Learning Lucene"},"content":{"rendered":"<p>I am currently working with a team starting a new project based on Lucene. While most of the time I would argue on using either Solr or Elasticsearch instead of plain Lucene it was a conscious decision. In this post I am compiling some sources for learning Lucene \u2013 I hope you will find them helpful or you can hint what sources I missed.<\/p>\n<h2>Project documentation<\/h2>\n<p>The first choice of course is the excellent <a href=\"http:\/\/lucene.apache.org\/core\/5_5_0\/index.html\">project documentation<\/a>. It contains the Javadoc for all the modules (<a href=\"http:\/\/lucene.apache.org\/core\/5_5_0\/core\/index.html\">core<\/a>, <a href=\"http:\/\/lucene.apache.org\/core\/5_5_0\/analyzers-common\/index.html\">analyzers-common<\/a> and <a href=\"http:\/\/lucene.apache.org\/core\/5_5_0\/queryparser\/index.html\">queryparser<\/a> being the most important ones) that also contains further documentation, for example an <a href=\"http:\/\/lucene.apache.org\/core\/5_5_0\/demo\/overview-summary.html#overview_description\">explanation of a simple demo app<\/a> and helpful introductions to <a href=\"http:\/\/lucene.apache.org\/core\/5_5_0\/core\/org\/apache\/lucene\/analysis\/package-summary.html#package_description\">analysis<\/a> and <a href=\"http:\/\/lucene.apache.org\/core\/5_5_0\/core\/org\/apache\/lucene\/search\/package-summary.html#package_description\">querying and scoring<\/a>. You might also be interested in the <a href=\"http:\/\/lucene.apache.org\/core\/5_5_0\/core\/org\/apache\/lucene\/codecs\/lucene54\/package-summary.html#package_description\">standard index file formats<\/a>.<\/p>\n<p>Besides the documentation that comes with the releases there is also lots of information in the <a href=\"http:\/\/wiki.apache.org\/lucene-java\/FrontPage?action=show&amp;redirect=FrontPageEN\">project wiki<\/a> but you need to know what you are looking for. You can also join the <a href=\"http:\/\/lucene.apache.org\/core\/discussion.html\">mailing lists<\/a> to learn about what other users are doing.<\/p>\n<p>When looking at analyzer components the <a href=\"http:\/\/www.solr-start.com\/\">Solr Start<\/a> website can be useful. Though dedicated to Solr the <a href=\"http:\/\/www.solr-start.com\/info\/analyzers\/\">list of analyzer components<\/a> can be useful to determine analyzers for Lucene as well. It also contains a <a href=\"http:\/\/www.solr-start.com\/javadoc\/solr-lucene\/index.html\">searchable version of the Javadocs<\/a>.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<h2>Books<\/h2>\n<p>The classic book about the topic is <a href=\"https:\/\/www.manning.com\/books\/lucene-in-action-second-edition\">Lucene in Action<\/a>. On over 500 pages it explains all the underlying concepts in detail. Unfortunately some of the information is outdated and lots of the code examples won&#8217;t work anymore. Also the newer concepts are not included. Still it&#8217;s the recommended piece on learning Lucene.<\/p>\n<p>Anonther book I&#8217;ve read is <a href=\"https:\/\/www.packtpub.com\/big-data-and-business-intelligence\/lucene-4-cookbook\">Lucene 4 Cookbook<\/a> published at Packt. It contains more current examples but is not suited well for learning the basics. Additionally it felt to me as if no editor worked on this book, there are lots of repetitions, typos and broken sentences. (I am making lots of grammar mistakes myself when blogging &#8211; but I am expecting more from a published book.)<\/p>\n<p>You can also learn a lot about different aspects of Lucene by reading a book on one of the search servers based on it. I can recommend <a href=\"https:\/\/www.manning.com\/books\/elasticsearch-in-action\">Elasticsearch in Action<\/a>, <a href=\"https:\/\/www.manning.com\/books\/solr-in-action\">Solr in Action<\/a> and <a href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/guide\/master\/index.html\">Elasticsearch \u2013 The definitive Guide<\/a>. (If you can read German I am of course inviting you to read <a href=\"http:\/\/elasticsearch-buch.de\/\">my book on Elasticsearch<\/a>.)<\/p>\n<h2>Blogs, Conferences and Videos<\/h2>\n<p>There are countless blog posts on Lucene, a very good introduction is <a href=\"http:\/\/blog.parsely.com\/post\/1691\/lucene\/\">Lucene: The Good Parts by Andrew Montalenti<\/a>. Some blogs publish regular pieces on Lucene, recommended ones are by <a href=\"http:\/\/blog.mikemccandless.com\/\">Mike McCandless<\/a> (who now mostly blogs on the <a href=\"https:\/\/www.elastic.co\/blog\/author\/michael-mccandless\">elastic Blog<\/a>), <a href=\"http:\/\/opensourceconnections.com\/blog\/\">OpenSource Connections<\/a>, <a href=\"http:\/\/www.flax.co.uk\/blog\/\">Flax<\/a> and <a href=\"http:\/\/blog.thetaphi.de\/\">Uwe Schindler<\/a>. There is a lot of content about Lucene on the <a href=\"https:\/\/www.elastic.co\/blog\/\">elastic Blog<\/a>, if you want to hear about current development I can recommend the &#8220;This week in Elasticsearch and Apache Lucene&#8221; series. There are also some interesting posts on the <a href=\"http:\/\/lucidworks.com\/blog\/\">Lucidworks Blog<\/a> and I am sure there are lots of other blogs I forgot to mention here.<\/p>\n<p>Lucene is a regular topic on two larger conferences: <a href=\"http:\/\/lucenerevolution.org\/\">Lucene\/Solr Revolution<\/a> and <a href=\"http:\/\/berlinbuzzwords.de\/\">Berlin Buzzwords<\/a>. You can find lots of video recordings of the past events on their website.<\/p>\n<h2>Sources<\/h2>\n<p>Finally, the project is open source so you can learn a lot about it by reading the source code of either the library or the tests.<\/p>\n<p>Another option is to look at applications using it, either Solr and Elasticsearch. Of course you need to find your way around the sources of the project but sometimes this isn&#8217;t too hard. One example for Elasticsearch: If you would like to learn about how the common multi_match-Query is implemented in Lucene you will easily find the class <a href=\"https:\/\/github.com\/elastic\/elasticsearch\/blob\/master\/core\/src\/main\/java\/org\/elasticsearch\/index\/search\/MultiMatchQuery.java\">MultiMatchQuery<\/a> that creates the Lucene queries.<\/p>\n<h2>What did I miss?<\/h2>\n<p>I hope there is something useful for you in this post. I am sure I missed lots of great resources for learning Lucene. If you would like to add one let me know in the comments or on <a href=\"https:\/\/twitter.com\/fhopf\">Twitter<\/a>.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"http:\/\/blog.florian-hopf.de\/2016\/04\/learning-lucene.html\">Learning Lucene<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/join-us\/jcg\/\">JCG partner<\/a> Florian Hopf at the <a href=\"http:\/\/blog.florian-hopf.de\/\">Dev Time<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I am currently working with a team starting a new project based on Lucene. While most of the time I would argue on using either Solr or Elasticsearch instead of plain Lucene it was a conscious decision. In this post I am compiling some sources for learning Lucene \u2013 I hope you will find them &hellip;<\/p>\n","protected":false},"author":559,"featured_media":71,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[1348],"class_list":["post-56396","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-lucene"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Learning Lucene - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"I am currently working with a team starting a new project based on Lucene. While most of the time I would argue on using either Solr or Elasticsearch\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learning Lucene - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"I am currently working with a team starting a new project based on Lucene. While most of the time I would argue on using either Solr or Elasticsearch\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-19T16:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-lucene-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Florian Hopf\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/fhopf\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Florian Hopf\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html\"},\"author\":{\"name\":\"Florian Hopf\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/ffed07622be537868d71a953742e9d58\"},\"headline\":\"Learning Lucene\",\"datePublished\":\"2016-05-19T16:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html\"},\"wordCount\":674,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-lucene-logo.jpg\",\"keywords\":[\"Lucene\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html\",\"name\":\"Learning Lucene - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-lucene-logo.jpg\",\"datePublished\":\"2016-05-19T16:00:00+00:00\",\"description\":\"I am currently working with a team starting a new project based on Lucene. While most of the time I would argue on using either Solr or Elasticsearch\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-lucene-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-lucene-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/05\\\/learning-lucene-2.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Learning Lucene\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/ffed07622be537868d71a953742e9d58\",\"name\":\"Florian Hopf\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c1be71f01d810bb91604ed8d73a9a5ecd185562f1adadd9441c8184f4b495187?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c1be71f01d810bb91604ed8d73a9a5ecd185562f1adadd9441c8184f4b495187?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c1be71f01d810bb91604ed8d73a9a5ecd185562f1adadd9441c8184f4b495187?s=96&d=mm&r=g\",\"caption\":\"Florian Hopf\"},\"description\":\"Florian is a software developer living in Singapore. He enjoys building search solutions based on Lucene, Solr and Elasticsearch and he's interested in topics like build automation and test driven development.\",\"sameAs\":[\"http:\\\/\\\/blog.florian-hopf.de\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/fhopf\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/florian-hopf\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Learning Lucene - Java Code Geeks","description":"I am currently working with a team starting a new project based on Lucene. While most of the time I would argue on using either Solr or Elasticsearch","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html","og_locale":"en_US","og_type":"article","og_title":"Learning Lucene - Java Code Geeks","og_description":"I am currently working with a team starting a new project based on Lucene. While most of the time I would argue on using either Solr or Elasticsearch","og_url":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2016-05-19T16:00:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-lucene-logo.jpg","type":"image\/jpeg"}],"author":"Florian Hopf","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/fhopf","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Florian Hopf","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html"},"author":{"name":"Florian Hopf","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/ffed07622be537868d71a953742e9d58"},"headline":"Learning Lucene","datePublished":"2016-05-19T16:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html"},"wordCount":674,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-lucene-logo.jpg","keywords":["Lucene"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html","url":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html","name":"Learning Lucene - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-lucene-logo.jpg","datePublished":"2016-05-19T16:00:00+00:00","description":"I am currently working with a team starting a new project based on Lucene. While most of the time I would argue on using either Solr or Elasticsearch","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-lucene-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-lucene-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2016\/05\/learning-lucene-2.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Learning Lucene"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/ffed07622be537868d71a953742e9d58","name":"Florian Hopf","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c1be71f01d810bb91604ed8d73a9a5ecd185562f1adadd9441c8184f4b495187?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c1be71f01d810bb91604ed8d73a9a5ecd185562f1adadd9441c8184f4b495187?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c1be71f01d810bb91604ed8d73a9a5ecd185562f1adadd9441c8184f4b495187?s=96&d=mm&r=g","caption":"Florian Hopf"},"description":"Florian is a software developer living in Singapore. He enjoys building search solutions based on Lucene, Solr and Elasticsearch and he's interested in topics like build automation and test driven development.","sameAs":["http:\/\/blog.florian-hopf.de\/","https:\/\/x.com\/https:\/\/twitter.com\/fhopf"],"url":"https:\/\/www.javacodegeeks.com\/author\/florian-hopf"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/56396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/559"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=56396"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/56396\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/71"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=56396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=56396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=56396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}