Commit Graph

3920 Commits

Author SHA1 Message Date
Shay Banon 433b189eb4 provide the timer for netty
this helps to control the thread name of the thread it created
2012-09-30 09:11:03 -04:00
Shay Banon c56cc6ecbe Upgrade to netty 3.5.8
closes #2299.
2012-09-29 19:24:43 -04:00
Shay Banon 05653cbdaa move cleaning filter cache on closed readers to separate thread
improve cleaning the global weighted cache when a reader closes, move it to a separate thread, so iterating over the cache entries will nto happen on each segment closed, but instead be "bulked"
2012-09-29 14:06:28 +02:00
Shay Banon 9dd8e1ea05 refresh thread pool to use scaling with default size of 10 2012-09-29 13:21:18 +02:00
Shay Banon 5bf566660b fix detection when JTS / spatial4j are not available 2012-09-28 22:29:08 +02:00
Shay Banon 7d6c567e6f return null instead of empty doc set
null can more easily be optimized in other filters
2012-09-28 17:18:07 +02:00
Martijn van Groningen 51e69e1a9e Fixed NPE when using `has_parent` or `has_child` filter/query.
The NPE occurred when for an arbitrary segment no parent documents exist for a has_parent filter/query and no child documents exist for a has_child filter/query.

Closes #2297
2012-09-28 17:08:30 +02:00
Shay Banon 2df6b4b0ea more guice to use Objects from guava 2012-09-28 14:03:41 +02:00
Shay Banon f9fc9bdb20 query_string on multiple fields with "*" fails in 0.19.9
fixed #2296
2012-09-28 14:00:43 +02:00
Shay Banon d8a3096a1a make sure to pass the updated settings from the plugins to the modules with transport client 2012-09-28 13:47:34 +02:00
Shay Banon 81775cc763 upgrade to mvel 2.1.3 2012-09-28 10:02:52 +02:00
Shay Banon 613c70c289 introduce TransportResponse
a class that needs to be used when sending a response over the transport layer, with an option to have headers
2012-09-27 18:05:16 +02:00
Shay Banon 15453272f7 fetching a shape should not occur on separate thread 2012-09-26 23:47:27 +02:00
Shay Banon cfe7504d1c introduce TransportRequest (with optional headers)
introduce a new class, TransportRequest, which includes headers. This class can be used when sending requests over the transport layer, and ActionRequest also extends it now.
This is the first phase of the refactoring part in the transport layer and action layer to allow for simpler implementations of those as well as simpler "filtering" capabilities in the future
2012-09-26 23:46:28 +02:00
Shay Banon 15fbbd43ce Bulk Delete item when broadcast to all shard (lack of routing) might not be applied correctly
closes #2285.
2012-09-24 14:04:10 +02:00
Martijn van Groningen 81a6940ad3 Fixed score explain is for `custom_filters_score` query.
Only the explain of the filter was included. This fix adds an explain for the inner query and wraps it in a top-level explanation.
2012-09-24 14:00:34 +02:00
Shay Banon 6e66f45f58 minor geo shape fetch improvements 2012-09-23 21:31:13 +02:00
Chris Male 05e0b4d4e0 Added ShapeFetchService with support in GeoShapeQueryParser/FilterParser 2012-09-23 21:24:13 +02:00
Shay Banon df0ff176d4 add simpler way to set the epoll bug workaround flag for netty 2012-09-22 19:50:43 +02:00
Shay Banon f73d684c76 use the version to deserialize published cluster state 2012-09-22 19:47:50 +02:00
Shay Banon d5e11fdcd9 disconnect from unicast nodes before raising event 2012-09-22 19:38:34 +02:00
Shay Banon aa435a288b add node version to each request/response transport message
a version associated with each request, and having it associated with the stream when (de)serializing, can allow us in the future to better support cross version communication
2012-09-22 02:35:29 +02:00
Shay Banon cc7eb263be Transport: Add header token
This allows to more easily identify when illegal content is being sent to the transport port
closes #2280
2012-09-21 23:56:27 +02:00
Shay Banon a3af3d2f47 Norms field is ignored when doing a match_all query
we shouldn't optimize a match all query if it has norms associated with it, fixes #2277
2012-09-21 18:57:21 +02:00
Chris Male 4f5e62e988 Added MultiPolygon parsing and serialization support 2012-09-21 14:03:21 +02:00
Martijn van Groningen 8080fdc509 Added types exists api
The types exists api checks whether one or more types exists in one or more indices.

## Example usage
curl -XHEAD 'localhost:9200/twitter/tweet'

## Options
* `index` - One or more indices. Either specified as query string parameter or in the uri path.
* `type` - One or more types. Either specified as query string parameter or in the uri path.
* `ignore_missing` -  Determines what type of indices to exclude from a request. The option can have the following values: `none` or `missing`.

Closes #2273
2012-09-21 10:21:32 +02:00
Chris Male 6fc0b83e07 Upgraded to Spatial4j 0.3 2012-09-20 23:55:51 +02:00
Shay Banon 0fadbf2177 more easily add a field with boost to multi match builder 2012-09-20 12:38:13 +02:00
Shay Banon 83a39bd509 improve test by not waiting for green state, no need 2012-09-20 12:00:58 +02:00
Shay Banon f8e1291243 global node indices level queries to be created by guice 2012-09-20 11:54:46 +02:00
Shay Banon 4e19de1a08 don't serialize ignore_unmapped to mapping on default value
fix ignore_unmapped being serialized as part of the mappings even though it has a default value and not explicitly set
2012-09-19 20:54:13 +02:00
Shay Banon 7f6f001d15 better reason logged when not master 2012-09-19 18:28:29 +02:00
Martijn van Groningen afc99ac42c Added id cache size to nodes stats api
Also added bloom cache size the node *rest* api
Closes #2264
2012-09-19 13:16:24 +02:00
Shay Banon 86e88a86b8 expose the highlighter builder Field constructor 2012-09-19 11:47:48 +02:00
Martijn van Groningen d5aa35e0ea Added better error handling for has_child, has_parent and top_children.
If has_parent, has_child or top_children are executed incorrectly then a better exception is thrown. This gives a better error description when one of these queries or filters is being used in count api.

Closes #2261
2012-09-18 13:26:23 +02:00
Shay Banon 2275b82549 upgrade to testng 6.8 2012-09-17 16:23:18 +02:00
Shay Banon 7924115b90 Disable allocation: New indices allocation not to be disabled by default
When setting cluster.routing.allocation.disable_allocation, it causes new indices primary shards to not be allocated. By default, new indices created should allow to, at the very least, allocate primary shards so they become operations. A new setting, cluster.routing.allocation.disable_new_allocation, allows to also disable "new" allocations.
closes #2258.
2012-09-17 16:00:55 +02:00
Shay Banon 90e0a70e0e cancel allocation command to allow_primary to be cancelled 2012-09-17 12:31:33 +02:00
Martijn van Groningen 42864f7481 Fixed wrong jdoc 2012-09-17 12:00:44 +02:00
Shay Banon afca5ef15f The reroute command allows to explcitiyly execute a cluster reroute allocation command including specific commands. For example, a shard can be moved from one node to another explicitly, an allocation can be canceled, or an unassigned shard can be explicitly allocated on a specific node.
Here is a short example of how a simple reroute API call:

    curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
        "commands" : [
            {"move" : {"index" : "test", "shard" : 0, "from_node" : "node1", "to_node" : "node2"}},
            {"allocate" : {"index" : "test", "shard" : 1, "node" : "node3"}}
        ]
    }'

An importnat aspect to remember is the fact that once when an allocation occurs, the cluster will aim at rebalancing its state back to an even state. For example, if the allocation includes moving a shard from `node1` to `node2`, in an "even" state, then another shard will be moved from `node2` to `node1` to even things out.

The cluster can be set to disable allocations, which means that only the explicitl allocations will be performed. Obviously, only once all commands has been applied, the cluster will aim to be rebalance its state.

Anohter option is to run the commands in "dry_run" (as a URI flag, or in the request body). This will cause the commands to apply to the current cluster state, and reutrn the resulting cluster after the comamnds (and rebalancing) has been applied.

The commands supporterd are:

* `move`: Move a started shard from one node to anotehr node. Accepts `index` and `shard` for index name and shard number, `from_node` for the node to move the shard "from", and `to_node` for the node to move the shard to.
* `cancel`: Cancel allocation of a shard (or recovery). Accepts `index` and `shard` for index name and shar number, and `node` for the node to cancel the shard allocation on.
* `allocate`: Allocate an unassigned shard to a node. Accepts the `index` and `shard` for index name and shard number, and `node` to allocate the shard to. It also accepts `allow_primary` flag to explciitly specify that it is allowed to explciitly allocate a primary shard (might result in data loss).

closes #2256
2012-09-15 22:56:14 +02:00
Shay Banon 19fdd46c87 upgrade to log4j 1.2.17 2012-09-15 10:16:18 +02:00
Martijn van Groningen 9c04e6a4f4 Clean up has_parent query code Renamed some exception messages and removed method from builder 2012-09-14 19:06:12 +02:00
Martijn van Groningen cfe76546f2 Added has_parent query The `has_parent` query works the same as the `has_parent` filter, by automatically wrapping the filter with a constant_score. It has the same syntax as the `has_parent` filter. Closes #2254 2012-09-14 17:34:01 +02:00
Shay Banon 7bf233a174 fix cleanup of of has child/parent
check if the collected uids were processed before trying to push them back to the cache
2012-09-14 15:01:21 +02:00
Martijn van Groningen 3cd54fc4ee Improve `has_child` filter / query performance (#2251) Added a new has_child filter implementation, that works _uid based instead of bitset based. This implementation is about ~2 till ~6 times (depending on the query) faster than the already existing bitset based implementation. 2012-09-14 14:37:29 +02:00
Shay Banon 4dddeeb30c When configuring mmapfs it is not used since 0.19.7, closes #2253. 2012-09-14 14:30:44 +02:00
Shay Banon ef9974ce2c add serialization options for allocation commands 2012-09-14 14:26:39 +02:00
Martijn van Groningen 2bd9b3aed0 Added `has_parent` filter (#2243)
The `has_parent` filter accepts a query and a parent type. The query is executed in the parent document space, which is specified by the parent type. This filter return child documents which associated parents have matched. For the rest `has_parent` filter has the same options and works in the same manner as the `has_child` filter.

This is an experimental filter.

Filter example
###################
```
{
    "has_parent" : {
        "parent_type" : "blog"
        "query" : {
            "term" : {
                "tag" : "something"
            }
        }
    }
}
```
The `parent_type` field name can also be abbreviated to `type`.

Memory considerations
###############
With the current implementation, all _id values are loaded to memory (heap) in order to support fast lookups, so make sure there is enough mem for it.

This issue originates from issue #792
2012-09-13 13:35:45 +02:00
Shay Banon e530f03b94 internal custom allocation commands
add support for internal custom allocation commands, including allocation, move, and cancel (shard).
also, fix #2242, which causes the cluster state to be in inconsistent state when a shard being the source of relocation is failed
2012-09-12 15:13:27 +02:00
Martijn van Groningen b6a9bd9a31 - Fixed boosting per field with multi_match query. 2012-09-12 11:43:33 +02:00