java.lang.Object
org.apache.storm.topology.base.BaseComponent
org.apache.storm.topology.base.BaseRichBolt
com.digitalpebble.stormcrawler.indexing.AbstractIndexerBolt
com.digitalpebble.stormcrawler.opensearch.bolt.IndexerBolt
All Implemented Interfaces:
com.github.benmanes.caffeine.cache.RemovalListener<String,List<org.apache.storm.tuple.Tuple>>, Serializable, org.apache.storm.task.IBolt, org.apache.storm.topology.IComponent, org.apache.storm.topology.IRichBolt, org.opensearch.action.bulk.BulkProcessor.Listener

public class IndexerBolt extends AbstractIndexerBolt implements com.github.benmanes.caffeine.cache.RemovalListener<String,List<org.apache.storm.tuple.Tuple>>, org.opensearch.action.bulk.BulkProcessor.Listener
Sends documents to opensearch. Indexes all the fields from the tuples or a Map <String,Object> from a named field.
See Also:
  • Constructor Details

    • IndexerBolt

      public IndexerBolt()
    • IndexerBolt

      public IndexerBolt(String indexName)
      Sets the index name instead of taking it from the configuration. *
  • Method Details

    • prepare

      public void prepare(Map<String,Object> conf, org.apache.storm.task.TopologyContext context, org.apache.storm.task.OutputCollector collector)
      Specified by:
      prepare in interface org.apache.storm.task.IBolt
      Overrides:
      prepare in class AbstractIndexerBolt
    • onRemoval

      public void onRemoval(@Nullable @Nullable String key, @Nullable @Nullable List<org.apache.storm.tuple.Tuple> value, @NotNull @NotNull com.github.benmanes.caffeine.cache.RemovalCause cause)
      Specified by:
      onRemoval in interface com.github.benmanes.caffeine.cache.RemovalListener<String,List<org.apache.storm.tuple.Tuple>>
    • cleanup

      public void cleanup()
      Specified by:
      cleanup in interface org.apache.storm.task.IBolt
      Overrides:
      cleanup in class org.apache.storm.topology.base.BaseRichBolt
    • execute

      public void execute(org.apache.storm.tuple.Tuple tuple)
      Specified by:
      execute in interface org.apache.storm.task.IBolt
    • getIndexName

      protected String getIndexName(Metadata m)
      Must be overridden for implementing custom index names based on some metadata information By Default, indexName coming from config is used
    • beforeBulk

      public void beforeBulk(long executionId, org.opensearch.action.bulk.BulkRequest request)
      Specified by:
      beforeBulk in interface org.opensearch.action.bulk.BulkProcessor.Listener
    • afterBulk

      public void afterBulk(long executionId, org.opensearch.action.bulk.BulkRequest request, org.opensearch.action.bulk.BulkResponse response)
      Specified by:
      afterBulk in interface org.opensearch.action.bulk.BulkProcessor.Listener
    • afterBulk

      public void afterBulk(long executionId, org.opensearch.action.bulk.BulkRequest request, Throwable failure)
      Specified by:
      afterBulk in interface org.opensearch.action.bulk.BulkProcessor.Listener