Supermind Search Consulting Blog 
Solr - ElasticSearch - Big Data

SolrCloud search request lifecycle and writing distributed Solr SearchComponents

Posted by Kelvin on 02 Jul 2018 | Tagged as: Lucene / Solr / Elasticsearch / Nutch

Recap To recap, in a previous article, we saw that a SearchComponent comprises of a prepare() and process() method:   and that the standalone SolrCloud application flow of a search request looks more or less like:   SolrCloud high-level search request lifecycle When a search request is received by a SolrCloud collection. the following sequence […]

Introducing SolrCloud

Posted by Kelvin on 02 Jul 2018 | Tagged as: Lucene / Solr / Elasticsearch / Nutch

In this post, we will examine SolrCloud and examine how it is different from standalone Solr.. Introducing SolrCloud In a standalone Solr installation, the data resides on a single machine and all requests are served from this machine. SolrCloud is the operation mode in Solr where the data resides on multiple machines (known as a […]

Developing a Solr SearchComponent for standalone Solr

Posted by Kelvin on 02 Jul 2018 | Tagged as: Lucene / Solr / Elasticsearch / Nutch

In this article, I discuss SearchComponents briefly, and show how straightforward it is (in non-SolrCloud mode) to develop a custom Solr SearchComponent. In the next articles in the series, we examine the flow of logic in SolrCloud mode, and how you might be able to develop a SolrCloud-compatible SearchComponent. Standalone Solr/non-SolrCloud In standalone Solr mode, […]

Introducing this series on developing Solr SearchComponents

Posted by Kelvin on 01 Jul 2018 | Tagged as: Lucene / Solr / Elasticsearch / Nutch

Solr and Elasticsearch more or less have feature-parity. Elsewhere, I have examined in detail the similarities and differences between Elasticsearch and Solr. One of the major differences between the 2 open-source search products though, is how easy it is to plug custom logic into the search workflow in Solr. In Solr, you do this by […]

Linode has terrible customer service

Posted by Kelvin on 01 May 2016 | Tagged as: programming

I recently ran a small webapp on Linode to test out response latency from their California datacenter. When I no longer needed the app, I powered down the node, thinking that the hourly billing as advertised on this page: would mean that I wouldn't get charged for a powered down node. Unfortunately, I didn't […]

Power browsing proggit + HN + + dzone news

Posted by Kelvin on 20 Jan 2016 | Tagged as: programming

Disclaimer: this uses Erudite, a tool I wrote in Django. Here's how I speed-read programming-related news. Open in your browser. Press ` (backtick key) to page the entire row, shift+` to page-prev the entire row. Press 1 2 3 4 to page each respective column. shift+1 to previous page on column 1, shift+2 on […]

Erudite – a text-only, keyboard-friendly news reader

Posted by Kelvin on 12 Jan 2016 | Tagged as: programming

Something I've been working on for a bit: A keyboard-friendly, text-only news reader. Somewhat mobile-friendly. Hit '?' for keyboard shortcuts.

Embed custom Javascript and HTML in a Kibana 4.x visualization

Posted by Kelvin on 11 Jan 2016 | Tagged as: Lucene / Solr / Elasticsearch / Nutch

The embarrassingly simple answer to embedding ANY Javascript and HTML into a Kibana vis is to hack the markdown_vis plugin to not use markdown at all, but just display the HTML as-is. Modify src/plugins/markdown_vis/public/markdown_vis_controller.js, and comment out   and replace it with   You'll need to recreate the bundles (just install or remove/reinstall sense for […]

Lucene 5 NRT Example

Posted by Kelvin on 16 Dec 2015 | Tagged as: Lucene / Solr / Elasticsearch / Nutch

I just added an NRT search example for Lucene 5.x to Check it out here:

Pain-free Solr replication

Posted by Kelvin on 02 Dec 2015 | Tagged as: Lucene / Solr / Elasticsearch / Nutch

Here's a setup I use for totally pain-free Solr replication, and allowing you to switch masters/slaves quickly without messing with config files. Add this to solrconfig.xml <requestHandler name="/replication" class="solr.ReplicationHandler" >   <str name="maxNumberOfBackups">1</str>   <lst name="master">         <str name="enable">${enable.master:false}</str>         <str name="replicateAfter">startup</str>         <str name="replicateAfter">commit</str>   […]

Next Page »