Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Vert.x elasticsearch service with event bus proxying

NotificationsYou must be signed in to change notification settings

ef-labs/vertx-elasticsearch-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vert.x 3 elasticsearch service with event bus proxying.

Build StatusMaven Central

Version Matrix

vert.xelasticsearchvertx-elasticsearch-service
3.3.12.2.02.2.0
3.0.01.7.22.1.0
2.1.x1.3.21.3.0 (vertx-mod-elasticsearch)

Configuration

The configuration options are as follows:

{"address":<address>,"transportAddresses": [ {"hostname":<hostname>, "port": <port>} ],"cluster_name":<cluster_name>,"client_transport_sniff":<client_transport_sniff>,"requireUnits":false}
  • address - The event bus address to listen on. The default is"et.vertx.elasticsearch".
  • transportAddresses - An array of transport address objects containinghostname andport. If no transport address are provided the default is"localhost" and9300
    • hostname - the ip or hostname of the node to connect to.
    • port - the port of the node to connect to. The default is9300.
  • cluster_name - the elastic search cluster name. The default is"elasticsearch".
  • client_transport_sniff - the client will sniff the rest of the cluster and add those into its list of machines to use. The default istrue.
  • requireUnits - boolean flag whether units are required. The default isfalse.

An example configuration would be:

{"address":"eb.elasticsearch","transportAddresses": [ {"hostname":"host1","port":9300 }, {"hostname":"host2","port":9301 } ],"cluster_name":"my_cluster","client_transport_sniff":true}

NOTE: No configuration is needed if running elastic search locally with the default cluster name.

Dependency Injection

TheDefaultElasticSearchService requires aTransportClientFactory andElasticSearchConfigurator to be injected.

Default bindings are provided for HK2 and Guice, but you can create your own bindings for your container of choice.

See theenglishtown/vertx-hk2 orenglishtown/vertx-guice projects for further details.

Action Commands

Index

http://www.elasticsearch.org/guide/reference/api/index_/

Send a json message to the event bus with the following structure:

{"action":"index","_index":<index>,"_type":<type>,"_id":<id>,"_source":<source>}
  • index - the index name.
  • type - the type name.
  • id - the string id of the source to insert/update. This is optional, if missing a new id will be generated by elastic search and returned.
  • source - the source json document to index

An example message would be:

{"action":"index","_index":"twitter","_type":"tweet","_id":"1","_source": {"user":"englishtown","message":"love elastic search!"    }}

The event bus replies with a json message with the following structure:

{"status":<status>,"_index":<index>,"_type":<type>,"_id":<id>,"_version"<version>}
  • status - eitherok orerror
  • index - the index where the source document is stored
  • type - the type of source document
  • id - the string id of the indexed source document
  • version - the numeric version of the source document starting at 1.

An example reply message would be:

{"status":"ok","_index":"twitter","_type":"tweet","_id":"1","_version":1}

NOTE: A missing document will always be created (upsert mode) because theop_type parameter is not implemented yet (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-index_.html).

Get

http://www.elasticsearch.org/guide/reference/api/get/

Send a json message to the event bus with the following structure:

{"action":"get","_index":<index>,"_type":<type>,"_id":<id>}
  • index - the index name.
  • type - the type name.
  • id - the string id of the source to get.

An example message would be:

{"action":"get","_index":"twitter","_type":"tweet","_id":"1"}

The event bus replies with a json message with the following structure:

{"status":<status>,"_index":<index>,"_type":<type>,"_id":<id>,"_version":<version>"_source":<source>}
  • status - eitherok orerror
  • index - the index name.
  • type - the type name.
  • id - the string id of the source to insert/update. This is optional, if missing a new id will be generated by elastic search and returned.
  • version - the numeric version of the source document starting at 1.
  • source - the source json document to index

An example message would be:

{"status":"ok","_index":"twitter","_type":"tweet","_id":"1","_version":1"_source": {"user":"englishtown","message":"love elastic search!"    }}

Search

http://www.elasticsearch.org/guide/reference/api/search/

http://www.elasticsearch.org/guide/reference/query-dsl/

Send a json message to the event bus with the following structure:

{"action":"search","_index":<index>,"_indices":<indices>,"_type":<type>,"_types":<types>,"query":<query>,"postFilter":<postFilter>,"facets":<facets>,"search_type":<search_type>,"scroll":<scroll>,"size":<size>,"from":<from>,"fields":<fields>,"timeout":<timeout>}

An example message would be:

{"action":"search","_index":"twitter","_type":"tweet","query": {"match": {"user":"englishtown"        }    }}

The event bus replies with a json message with a status"ok" or"error" along with the standard elastic search json search response. See the documentation for details.

An example reply message for the query above would be:

{"status":"ok","took" :3,"timed_out" :false,"_shards" : {"total" :5,"successful" :5,"failed" :0    },"hits" : {"total" :2,"max_score" :0.19178301,"hits" : [            {"_index" :"twitter","_type" :"tweet","_id" :"1","_score" :0.19178301,"_source" : {"user":"englishtown","message" :"love elastic search!"                }            },            {"_index" :"twitter","_type" :"tweet","_id" :"2","_score" :0.19178301,"_source" : {"user":"englishtown","message" :"still searching away"                }            }        ]    }}

Scroll

http://www.elasticsearch.org/guide/reference/api/search/scroll/

First send a search message withsearch_type ="scan" andscroll ="5m" (some time string). The search result will include a_scroll_id that will be valid for the scroll time specified.

Send a json message to the event bus with the following structure:

{"action":"scroll","_scroll_id":<_scroll_id>,"scroll":<scroll>}
  • _scroll_id - the string scroll id returned from the scan search.
  • scroll - a string time value parameter (ex."5m" or"30s").

An example message would be:

{"action":"scroll","_scroll_id":"c2Nhbjs1OzIxMTpyUkpzWnBIYVMzbVB0VGlaNHdjcWpnOzIxNTpyUkpzWnBI","scroll":"5m"}

The event bus replies with a json message with a status"ok" or"error" along with the standard elastic search json scroll response. See the documentation for details.

An example reply message for the scroll above would be:

{"status":"ok","_scroll_id":"c2Nhbjs1OzIxMTpyUkpzWnBIYVMzbVB0VGlaNHdjcWpnOzIxNTpyUkpzWnBI","took":2,"timed_out":false,"_shards": {"total":5,"successful":5,"failed":0    },"hits" : {"total" :2,"max_score" :0.0,"hits" : [            {"_index" :"twitter","_type" :"tweet","_id" :"1","_score" :0.0,"_source" : {"user":"englishtown","message" :"love elastic search!"                }            },            {"_index" :"twitter","_type" :"tweet","_id" :"2","_score" :0.0,"_source" : {"user":"englishtown","message" :"still searching away"                }            }        ]    }}

Delete

http://www.elasticsearch.org/guide/reference/api/delete/

Send a json message to the event bus with the following structure:

{"action":"delete","_index":<index>,"_type":<type>,"_id":<id>}
  • index - the index name.
  • type - the type name.
  • id - the string id of the document to delete.

An example message would be:

{"action":"delete","_index":"twitter","_type":"tweet","_id":"1"}

The event bus replies with a json message with the following structure:

{"found":<status>,"_index":<index>,"_type":<type>,"_id":<id>,"_version":<version>}
  • found - eithertrue orfalse
  • index - the index name.
  • type - the type name.
  • id - the string id of the source to delete.
  • version - the numeric version of the deleted document starting at 1.

An example message would be:

{"found":"true","_index":"twitter","_type":"tweet","_id":"1","_version":1}

About

Vert.x elasticsearch service with event bus proxying

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors7


[8]ページ先頭

©2009-2025 Movatter.jp