Commit Graph

3967 Commits

Author SHA1 Message Date
Shay Banon 6e12584018 [TEST] delegate to the original transport 2014-04-01 11:52:18 +02:00
javanna 38dd501ab5 [TEST] added ExternalTestCluster that allows to run tests against an external cluster
All the ordinary test operations happen based on the ImmutableTestCluster base class and are executed via transport client. Will be used especially for the REST tests once migrated to the standard randomized runner.

Added new httpAddresses method to ImmutableTestCluster to be able to retrieve the http addresses to connect to for the REST tests. Both versions will look inside the cluster to figure out which nodes are available for http calls and their addresses.

The external cluster is used as global cluster if the tests.cluster system property is available. The property needs to contain a comma separated list of available elasticsearch nodes that will be used to connect to the cluster (e.g. localhost:9300,localhost:9301).

Only a subset of the integration tests can currently be run successfully against the external cluster, for more precision the ones that don't modify the cluster layout (don't require cluster() functionalities but rely only on immutableCluster()). Also at least two data nodes are required otherwise the ensureGreen calls cannot succeed.

Closes #5630
2014-04-01 11:45:35 +02:00
Chris Earle 70c089de0a Replaces usage of `StringBuffer` with `StringBuilder` and fixes stray
single quote in the same `PluginInfo#toString()` method.

Closes #5605
2014-04-01 10:40:07 +02:00
Adrien Grand a34378f852 Do not propagate errors from onResult to onFailure.
The way that SearchServiceTransportAction executes actions on a local node
today would propagate exceptions thrown in onResult to onFailure.

Close #5629
2014-04-01 10:02:29 +02:00
Boaz Leskes 350fd8e30b Added trace logging in TransportSearchTypeAction and a delayed verification of test failures in MinDocCountTests.testMinDocCountOnTerms 2014-03-31 23:23:46 +02:00
Shay Banon cc4cae3ba0 Mock Transport: Allow to simulate network failures
An infrastructure that allows to simulate different network topologies failures, including 2 basic ones in failure to send requests, and unresponsive nodes
closes #5631
2014-03-31 22:49:10 +02:00
Boaz Leskes 62b850f52d InternalEngine - back to set dirty=false just *before* a refresh is done
reverting: 5553c383bc
2014-03-31 20:57:58 +02:00
Simon Willnauer c7b1f9946f Discard new cluster state if the clustername doesn't match
Closes #5622
2014-03-31 20:23:49 +02:00
Simon Willnauer df7474b9fc Add cluster_name to cluster_state
Today the clusterstate is not asssociated with the cluster_name which is odd
since it's pretty much it's only valid identifier. Any node can send a cluster
state to another node today even if it's not the same cluster. These situations
can happen rarely during tests or even in the wild by accident.
2014-03-31 20:23:49 +02:00
javanna d570d588a8 [TEST] moved dataNodes method to ImmutableTestCluster base class, replaced cluster().dataNodes() calls with immutableCluster().dataNodes() 2014-03-31 19:09:53 +02:00
javanna bae3203e3b [TEST] replaced cluster().size() calls with immutableCluster().size 2014-03-31 19:07:30 +02:00
javanna 8aea3a2f7d [TEST] fixed TestCluster size() javadocs 2014-03-31 18:34:26 +02:00
javanna 015c21c395 [TEST] move SuggestSearchTests to make use of default number of replicas randomization (based on number of data nodes) 2014-03-31 18:34:25 +02:00
javanna aac1374c76 [TEST] replaced cluster().wipeIndices|wipeTemplates calls with immutableCluster().wipeIndices|wipeTemplates 2014-03-31 18:34:25 +02:00
uboness d6636fc50c Aggregations cleanup
- removed an abstraction layer that handles the values source (consolidated values source with field data source)
- better handling of value parser/formatter in range & histogram aggs
- the buckets key will now be shown by default in range agg
2014-03-31 18:06:48 +02:00
Simon Willnauer 2cd6772329 [TEST] Set minimum_master_nodes for new node as well to make sure all ndoes have the same settings 2014-03-31 18:01:03 +02:00
Boaz Leskes 5553c383bc InternalEngine - only set dirty=false after a refresh happened 2014-03-31 17:39:57 +02:00
Boaz Leskes 1aac41e0d1 InternalEngine - added an assert to verify refresh was performed by lucene 2014-03-31 17:28:38 +02:00
Shay Banon f19f729498 Cleanup Rest Response
simplify rest response class hierarchy, by using BytesReference for content, and handling JSONP internally in the respective channel that sends the response.
Also, handle the future case where bytes might be releasable, when we start to potentially recycle bytes output stream.
2014-03-31 17:24:02 +02:00
Alexander Reelsen 0ff30ade69 ContextSuggester: Adding couple of tests to catch more bugs
A bunch of minor fixes have been included here, especially due
to wrongly parsed mappings. Also using assertions resulted in an
NPE because they were disabled in the distribution.

Closes #5525
2014-03-31 16:16:21 +02:00
Shay Banon f424319f9a Fix visibility in buffered translog
- fix visiblity of last written position in translog
- while there, make sure to properly propagate the exception from sync()
2014-03-31 15:23:23 +02:00
javanna 2e26dc328e [TEST] introduced ImmutableTestCluster abstract base class for TestCluster
The new base class contains all the immutable methods for a cluster, which will be extended by the future ExternalCluster impl that relies on an external cluster and won't be adding nodes etc. but only sending requests to an existing cluster whose layout never changes

Closes #5620
2014-03-31 14:41:05 +02:00
Alexander Reelsen 056ad0a8d3 Bulk API: Ensure that specific failures do not affect whole request
Before a bulk request is executed, missing indices are being created by default.
If this fails, the whole request is failed.

This patch changes the behaviour to not fail the whole request, but rather all
requests using the index where the creation has failed.

Closes #4987
2014-03-31 14:11:28 +02:00
Boaz Leskes 3f37a0ff5c TransportMasterNodeOperationAction: tighter postAdded change check
If a node fails to forward a master node operation to the current master, it will schedule a retry using a listener for cluster state changes. Once the listener is in place (and future changes are guaranteed to be observed) it will double check nothing has change during the addition of the listener. This check has previously been change to use cluster state versions (see: #5499). This is however not reliable solution as master elections (which change the master) do not increment the cluster state version and thus could be missed. This commit changes the check to use reference equality making it stricter.

Closes #5548
2014-03-31 13:57:47 +02:00
Simon Willnauer 5007bf7aa0 [Test] remove timeout from deleteWarmer call with many shards that might just take a while 2014-03-31 13:53:38 +02:00
Kevin Wang 3338750f14 check "store" for binary mapper and check "index_name" for all mappers
closes #5474
2014-03-31 12:44:00 +02:00
Adrien Grand 04c16b7ba5 Fix some warnings reported by Findbugs.
Although high-severity bugs were mostly static variables that were not final,
it also found potential NPEs and bugs like `x ^= x;` or equality checks on
objects that don't share a common interface.

Close #5571
2014-03-31 12:37:04 +02:00
javanna 31ecf1db98 [TEST] Test sending the request body as source parameter with GET method through REST tests
For around 10% of the calls that support the GET method, the request body gets now sent as `source` parameter with GET method (no randomized method in this case).

This way we can find bugs like #5556 (missing support for source param).
2014-03-31 12:36:03 +02:00
Adrien Grand 7f640dbcc6 Refactor common code for unmapped aggregators into `NonCollectingAggregator`.
Our aggregators that are dedicated to unmapped fields all look more or less
the same so this hopefully helps remove some spaghetti code.

Close #5528
2014-03-31 11:46:13 +02:00
Alexander Reelsen fdcc843627 Search template: Fix support for source parameter
If a search template was created using the source parameter, the
content of the parameter was put as source instead of sourceTemplate

Fixes #5556
2014-03-31 11:40:44 +02:00
Martijn van Groningen 3b73209123 An improvement to unicast discovery to also ping nodes the node itself received a ping from.
Also moved the unicast tests all in a single package.

Closes #5508
2014-03-31 10:51:25 +07:00
Simon Willnauer c84f975ff3 [TEST] Wait for shards to allocate before cleaning caches 2014-03-29 21:06:29 +01:00
javanna 5665ea9dad Fixed highlighting inconsistencies between REST and Java api
Exposed HighlightBuilder missing global options in Java API: fragmentSize, numOfFragments, highlightFilter, boundaryMaxScan and boundaryChars
Exposed SearchRequestBuilder missing global options shortcuts: setHighlighterFragmentSize, setHighlighterNumOfFragments, setHighlighterFilter, setHighlighterBoundaryMaxScan, setHighlighterBoundaryChars, setHighlighterFragmenter, setHighlighterPhraseLimit & setHighlighterForceSource

Closes #5281
2014-03-28 18:01:03 +01:00
Kevin Wang 8ab22a53fe fix dynamic_type in dynamic_template
closes #5256
2014-03-28 14:54:55 +01:00
javanna 34e9f8e83b [TEST] Removed skip regex sections as all the runners implemented the feature 2014-03-28 12:19:46 +01:00
Kevin Wang 5a2d195eb7 add human readable start_time and refresh_interval
closes #5280
2014-03-28 12:05:08 +01:00
Kevin Wang ceed22fe00 Add suggest stats
closes #4032
2014-03-28 11:13:54 +01:00
Holger Hoffstätte 0c1b9a6670 Restore streamInput() performance over PagedBytesReference.
Closes #5589
2014-03-28 11:02:53 +01:00
Kevin e78bbbf3ec add CBOR data format support 2014-03-28 20:30:39 +11:00
Simon Willnauer ca8ff571f9 Use only one shard in SuggestSearchTests#testPhraseBoundaryCases to get reliable statistics 2014-03-28 09:54:21 +01:00
Lee Hinman 8fbd1bdd48 Add the `field_value_factor` function to the function_score query
The `field_value_factor` function uses the value of a field in the
document to influence the score.

A query that looks like:
{
  "query": {
    "function_score": {
      "query": {"match": { "body": "foo" }},
      "functions": [
        {
          "field_value_factor": {
            "field": "popularity",
            "factor": 1.1,
            "modifier": "square"
          }
        }
      ],
      "score_mode": "max",
      "boost_mode": "sum"
    }
  }
}

Would have the score modified by:

square(1.1 * doc['popularity'].value)

Closes #5519
2014-03-27 14:29:37 -06:00
Lee Hinman 9ef5136e3d Be less verbose logging ClusterInfoUpdateJob failures
Closes #5222
2014-03-27 13:31:01 -06:00
Shay Banon 680a4ebbea cleanup second static cluster in test
hopefully this will remove the testing infra from failing on hanging to memory
2014-03-27 11:10:08 -07:00
Shay Banon 6fce15beec Tribe: Index level blocks, index conflict settings
allow to configure on the index level which blocks can optionally be applied using tribe.blocks.indices prefix settings.
allow to control what will be done when a conflict is detected on index names coming from several clusters using the tribe.on_conflict setting. Defaults remains "any", but now support also "drop" and "prefer_[tribeName]".
closes #5501
2014-03-27 09:45:20 -07:00
Simon Willnauer 6eb0f3e882 [TEST] Reset global cluster if tearDown failes to prevent subsequent failures 2014-03-27 16:22:22 +01:00
Simon Willnauer 5619ef5951 [JAVA7 Upgrade] Replace try/finally with 2014-03-27 16:00:25 +01:00
Simon Willnauer 1952df982b [JAVA7 Upgrade] Replace explicit type with <> 2014-03-27 15:54:45 +01:00
Simon Willnauer 49d84cb47f [JAVA7 Upgrade] Move to Long.compare 2014-03-27 15:48:12 +01:00
Adrien Grand b5b82626e7 Forbid Math.abs(int/long).
We have had a couple of bugs because of the use of these methods without paying
attention that it might return a negative value when provided with MIN_VALUE.
There is one common and legitimate usage of this method in order to perform
a modulo operation which would always return a positive number. This use-case
has been extracted to MathUtils.mod.

Close #5562
2014-03-27 14:50:43 +01:00
Adrien Grand 800d4624c8 Fix IndexShardRoutingTable's shard randomization to not throw out-of-bounds
exceptions.

Close #5559
2014-03-27 14:33:37 +01:00
Martijn van Groningen d3065acf14 [TEST] Made ttl test more predictable
* Only run the test with one node, to make sure only a single purger thread is running.
* Instead of generating the _timestamp upon indexing in ES, define the _timestamp in the documents.
* Verify the responses from the index requests.
2014-03-27 17:12:05 +07:00
Martijn van Groningen 22b13f5449 Now really fix eager fielddata loading.
Relates to #5557
2014-03-27 13:52:57 +07:00
Martijn van Groningen 5a0c1eb195 Fixed space in licence header. 2014-03-27 12:17:24 +07:00
Martijn van Groningen ec016c735c Fixes a bug when the field has been configured with eager fielddata loading, the fielddata is not being loaded.
Closes #5557
2014-03-27 12:10:05 +07:00
Igor Motov 3ffd0a1dfa Remove deprecated gateways
Closes #5422
2014-03-26 18:10:51 -04:00
javanna c5e6749e12 [TEST] removed leftover ElasticsearchIntegrationTest#randomIndexTemplate
used cluster().randomIndexTemplate instead
2014-03-26 22:59:06 +01:00
javanna 89dd722340 [TEST] Moved wipe* methods, randomIndexTemplate & ensureEstimatedStats from ElasticsearchIntegrationTest to TestCluster
This is the first to make it possible to have a different impl of TestCluster (e.g. based on an external cluster) that has the same methods but a different impl for them (e.g. it might use the REST API to do the same instead of the Java API)

Closes #5542
2014-03-26 17:27:35 +01:00
Simon Willnauer a12a36ef09 Convert TermQuery to PrefixQuery if PHRASE_PREFIX is set
We miss to add a single term to a prefix query if the query in only a
single term.

Closes #5551
2014-03-26 16:22:04 +01:00
Adrien Grand 3fd89bef94 [TEST] Increase logging on MinDocCountTests. 2014-03-26 15:14:48 +01:00
Holger Hoffstätte 280d4bfd28 Assorted fixes for bugs in the PagedBytesReference tests, plus a typo
where the wrong variable was used for a calculation.

Closes #5549
2014-03-26 14:27:16 +01:00
Boaz Leskes 196e3c3602 Capture and set start time in Delete By Query operations
This is important for queries/filters that use `now` in date based queries/filters

Closes #5540
2014-03-26 13:28:45 +01:00
Holger Hoffstätte ab3e22d17c Fix for zero-sized content throwing off toChannelBuffer(). Also
short-circuit writeTo(..) accordingly to avoid unnecessary work.

Fixes #5543
2014-03-26 10:43:47 +01:00
Kevin Wang 374b633a4b add uppercase token filter
closes #5539
2014-03-26 15:07:43 +07:00
Martijn van Groningen 2c65711dd9 [TEST] Added extra test for multi fields with default `include_in_all` settings, in which only the main field should end up in the `_all` field. 2014-03-26 14:34:44 +07:00
Igor Motov 6354bc4861 [TEST] Make sure that there are no relocating shards before taking snapshot
Temporary workaround for #5531
2014-03-25 16:22:29 -04:00
Adrien Grand b0beb3c8e1 Fix PMD warning: don't reassign method parameters. 2014-03-25 18:03:37 +01:00
Holger Hoffstätte cb430bd139 Fix compilation error from last commit. 2014-03-25 17:57:49 +01:00
Boaz Leskes 3d0d3ee082 Added versions 1.1.1, 1.0.3 & 0.90.14 2014-03-25 17:51:48 +01:00
Holger Hoffstätte 424bffca74 Temp. disable use of new PagedBytesReference since it breaks HTTP replies with 0-sized Content-Length 2014-03-25 17:45:32 +01:00
Adrien Grand 431b4024e9 Internally manipulate the terms execution hint as an enum instead of a String.
Close #5530
2014-03-25 16:49:53 +01:00
Holger Hoffstätte 977ed1dc15 PagedBytesReference with a boatload of tests. Passes all new and
existing tests. Non-allocating hashCode/Equals, zero-copy writeTo() and
ChannelBuffer support.

Fix for #5427
2014-03-25 15:18:39 +01:00
Adrien Grand 1c0b6da0ac Allow to disable norms on an existing field.
Close #4813
2014-03-25 14:13:06 +01:00
Martijn van Groningen a48254a04b Set the actual bytes used in circuit breaker back to how it was before loading if the loading wasn't successful.
Closes #5526
2014-03-25 17:50:30 +07:00
Kevin Wang 0ee889fd8b Fix include_in_all for multi field, to not include multi fields into _all field.
Closes #5522
2014-03-25 17:05:55 +07:00
Holger Hoffstätte 89a48014f0 Let ByteArray/BigByteArray.get() indicate whether a byte[] was
materialized.
2014-03-25 10:44:50 +01:00
Adrien Grand badedf657a BytesReference.Helper should never materialize a byte[] array.
The current implementations of BytesReference.Helper.bytesEquals and
bytesHashCode materialize a byte[] when passed an instance that returns `false`
in `hasArray()`. They should instead do a byte-by-byte comparison/hashcode
computation without materializing the array.

Close #5517
2014-03-25 09:50:33 +01:00
Simon Willnauer 8a60dacb3d [TEST] Don't pass possibly oversized array with 0 padding to SearchRequestBuilder#setFacet(byte[]) 2014-03-24 21:25:02 +01:00
Simon Willnauer 76e595278a Fix JsonXContentGenerator to write comma after rawWrite if needed 2014-03-24 19:46:01 +01:00
Shay Banon 333e7df3bc fix potential NPE, throw failure only if exists 2014-03-24 10:21:54 -07:00
Simon Willnauer 8709427b4a Randomize XContentType for requests
The used XContentType is static and should be randomized per test.

Closes #5515
2014-03-24 18:07:24 +01:00
Simon Willnauer c2e6aa273d Use build-in function to write field name in JsonXContentGenerator#writeRawField
The #writeRawField method forcefully writes a `,` spearator expecting a raw field
to never start as the first value in an object.

Closes #5514
2014-03-24 14:32:32 +01:00
Kevin Wang 21e2dfb6b1 Fix incorrect return impl in SmileXContent.createParser.
Close #5510
2014-03-24 12:22:05 +01:00
Kevin 1496b03458 Merge null_value for boolean field and remove include_in_all for boolean field in doc
Close #5502
2014-03-24 11:00:57 +01:00
Simon Willnauer 6f6dd90d1a [TEST] Fix rounding error problems in FuzzinessTests 2014-03-24 10:59:12 +01:00
Kevin Wang bfd3236378 Merge GeoPoint specific mapping properties
Close #5505
2014-03-24 09:30:55 +01:00
Boaz Leskes c650ee47f3 TransportMasterNodeOperationAction: retry operation if cluster state version changed while adding a ClusterStateListener
TransportMasterNodeOperationAction forwards incoming requests to the currently known master node. If that fails due to a connection error, a cluster state listener will be added in order to try again when a new master is elected. After the listener is in place, a check was made to see if the master has change *while* the listener was being added so that change will not be missed. The check was not enough as it may be that the same master was re-elected (for example, a network hick up) and thus test will fail even though the re-ellection event was missed. In these cases, the request would timeout unjustly. This commit changes this test to be  more strict and retry if the cluster state version changed during the addition of the listener.

Closes #5499
2014-03-24 09:03:32 +01:00
Simon Willnauer 034ce75250 [TEST] ensure that we don't fail if all shards fail due to no replicas and low number of shards 2014-03-23 21:42:07 +01:00
Simon Willnauer 6962d4f948 [TEST] Add mapping to ensure all nodes / shards parse a numeric field 2014-03-23 21:29:10 +01:00
Simon Willnauer 702a0c4948 [TEST] Disable wildcard query in testFixAOBEIfTopChildrenIsWrappedInMusNotClause for now 2014-03-23 15:58:48 +01:00
Boaz Leskes c74f1de3a6 Nodes who are not currently master do not update the ElectMasterService when dynamically setting min_master_nodes
When updating the min_master_nodes setting via the Cluster Settings API, the change is propagated to all nodes. The current master node also updates the ElectMasterService and validates that is still sees enough master eligible nodes and that it's election is still valid. Other master eligible nodes do not go through this validation (good) but also didn't update the ElectMasterService with the new settings. The result is that if the current master goes away, the next election will not be done with the latest setting.

Note - min_master_node set in the elasticsearch.yml file are processed correctly

Closes #5494
2014-03-22 21:33:52 +01:00
Robert Muir 5babf59813 Update to forbidden-apis 1.4.1
Closes #5492
2014-03-22 15:00:19 -04:00
Simon Willnauer 699044bce9 [TEST] Assert search response in MinDocCountTests#testMinDocCountOnTerms 2014-03-22 19:31:19 +01:00
Simon Willnauer 127371022d [TEST] Make SearchWhileRelocatingTests to handle known limitations gracefully 2014-03-22 19:13:24 +01:00
Simon Willnauer 5194521097 [Test] Run after checks even if cluster scope is == TEST 2014-03-21 16:13:00 +01:00
Simon Willnauer 2398bb4f1c Close Directory / Store once all resources have been released
Currently we close the store and therefor the underlying directory
when the engine / shard is closed ie. during relocation etc. We also
just close it while there are still searches going on and/or we are
recovering from it. The recoveries might fail which is ok but searches
etc. will be working like pending fetch phases.

The contract of the Directory doesn't prevent to read from a stream
that was already opened before the Directory was closed but from a
system boundary perspective and from lifecycles that we test it seems
to be the right thing to do to wait until all resources are released.

Additionally it will also help to make sure everything is closed
properly before directories are closed itself.

Note: this commit adds Object#wait & Object@#notify/All to forbidden APIs

Closes #5432
2014-03-21 15:02:38 +01:00
Martijn van Groningen 947c5f6920 Improved regular scroll api by using IndexSearch#searchAfter instead of regular search methods which rely on `from` for pagination.
This prevents the creation of priority queues of `from + size`, instead the size of the priority queue will always be equal to `size`.

Closes #4940
2014-03-21 13:50:50 +07:00
Simon Willnauer 7d7f2d728e [TEST] Add a test that ensures Version#CURRENT is actually the latest version 2014-03-20 21:09:58 +01:00
Simon Willnauer 9cd3e850af Add simple escape method for special characters to template query
The default mustache engine was using HTML escaping which breaks queries
if used with JSON etc. This commit adds escaping for:

```
\b  Backspace (ascii code 08)
\f  Form feed (ascii code 0C)
\n  New line
\r  Carriage return
\t  Tab
\v  Vertical tab
\"  Double quote
\\  Backslash
```

Closes #5473
2014-03-20 18:48:14 +01:00
Simon Willnauer b11d4a5871 Add new / missing version constants 2014-03-20 18:44:15 +01:00
Andrew Selden 89e45fde9c Recovery API
Adds a new API endpoint at /_recovery as well as to the Java API. The
recovery API allows one to see the recovery status of all shards in the
cluster. It will report on percent complete, recovery type, and which
files are copied.

Closes #4637
2014-03-20 10:13:30 -07:00
Alexander Reelsen 8f6e1d4720 Query Templates: Adding dedicated /_search/template endpoint
In order to simplify query template execution an own endpoint has been added

Closes #5353
2014-03-20 17:43:40 +01:00
uboness 7d6ad8d91c Added extended_bounds support for date_/histogram aggs
By default the date_/histogram returns all the buckets within the range of the data itself, that is, the documents with the smallest values (on which with histogram) will determine the min bucket (the bucket with the smallest key) and the documents with the highest values will determine the max bucket (the bucket with the highest key). Often, when when requesting empty buckets (min_doc_count : 0), this causes a confusion, specifically, when the data is also filtered.

To understand why, let's look at an example:

Lets say the you're filtering your request to get all docs from the last month, and in the date_histogram aggs you'd like to slice the data per day. You also specify min_doc_count:0 so that you'd still get empty buckets for those days to which no document belongs. By default, if the first document that fall in this last month also happen to fall on the first day of the **second week** of the month, the date_histogram will **not** return empty buckets for all those days prior to that second week. The reason for that is that by default the histogram aggregations only start building buckets when they encounter documents (hence, missing on all the days of the first week in our example).

With extended_bounds, you now can "force" the histogram aggregations to start building buckets on a specific min values and also keep on building buckets up to a max value (even if there are no documents anymore). Using extended_bounds only makes sense when min_doc_count is 0 (the empty buckets will never be returned if the min_doc_count is greater than 0).

Note that (as the name suggest) extended_bounds is **not** filtering buckets. Meaning, if the min bounds is higher than the values extracted from the documents, the documents will still dictate what the min bucket will be (and the same goes to the extended_bounds.max and the max bucket). For filtering buckets, one should nest the histogram agg under a range filter agg with the appropriate min/max.

Closes #5224
2014-03-20 14:48:27 +01:00
uboness 07af39364e Changed the DateHistogram.Bucket to return the date key in UTC timezone
Closes #5477
2014-03-20 13:30:08 +01:00
Shay Banon 6a2bb9a35e clean the query parse context after usage
that will make sure we don't have any parsers lying around that are no longer used
2014-03-20 13:11:15 +01:00
Simon Willnauer 047119d92e Add BoolFilterBuilder#hasClauses to be consitent with BoolQueryBuilder
Closes #5472
2014-03-20 13:05:04 +01:00
Simon Willnauer bd003fe5b6 [TEST] add @Slow annotations to bad apples 2014-03-20 12:58:28 +01:00
Britta Weber be3c5b44e0 category type should be called "category" instead of "field" in context suggester
Change according to documentation.
2014-03-20 12:25:45 +01:00
Florian Schilling c0a092aa92 [Doc] Updated docs for distance scripting
Updated docs for distance scripting and
added missing geohash distance functions
Closes #5397
2014-03-20 12:18:25 +01:00
markharwood 0cd184ef3c Fix for Jenkins advice on SignificantTermsAggregatorFactory, changing a small switch statement to an if-else 2014-03-20 11:02:06 +00:00
David Smiley 644fdfc4aa Upgrade to Spatial4j 0.4.1 and JTS 1.13
Fixes #5279
2014-03-20 11:17:51 +01:00
Simon Willnauer 34077e3121 [TEST] remove time upperbound from test - only for testing 2014-03-20 11:12:35 +01:00
Clinton Gormley 96655d2505 PUT /_aliases should accept a numeric routing value
Also added REST tests for setting index/search/routing
via the PUT /_aliases endpoint

Fixes #5465
2014-03-20 10:38:32 +01:00
Boaz Leskes a3f57c176e [Test] IndicesLifecycleListenerTests - added busy waiting for expected results (and improved error message)
The test currently uses ensureGreen to guaranty all shard allocations has happened. This only guaranties it from the cluster perspective and in some cases the nodes are not fast enough to implement the changes (which is what the test is about).
2014-03-20 10:34:44 +01:00
Simon Willnauer adfa82b2ed Allow iteration over MultiGetRequest#Item instances
Closes #3061
2014-03-20 10:24:12 +01:00
Adrien Grand ecdcc2df92 Fix cardinality memory-usage considerations.
Default precision was computed based on the number of MULTI_BUCKET parents
instead of PER_BUCKET.

The ordinals-based execution mode was almost always used although ordinals
might have non-negligible memory usage compared to the counters.

Close #5452
2014-03-20 10:02:40 +01:00
Martijn van Groningen 85c3c6fe62 [TEST] Disable wildcard query in testDfsSearchType for now 2014-03-20 14:56:25 +07:00
Andrew Raines 37b59d196b Remove shard-level info from _cat/segments and add pri/rep and ip address to segments
Also fix typo

Closes #4711
2014-03-19 22:56:06 -05:00
colings86 a7b3fdf3bf Added segments action to _cat API
Currently displays the same information as the _segments API
2014-03-19 22:56:06 -05:00
Florian Schilling 689fd15d78 Add exceptions to `GeoPointFieldMapper` when parsing `geo_point` object
* moved `geo_point` parsing to GeoUtils
* cleaned up `gzipped.json` for bulktest
* merged `GeoPointFieldMapper` and `GeoPoint` parsing methods

Closes #5390
2014-03-19 17:30:49 +01:00
markharwood 12d1bf8485 Significant_terms agg only creates term frequency cache when necessary and uses new TermsEnum wrapper to cache frequencies. Long and String-based aggs no longer need to pass an IndexReader as parameter when looking up frequencies of terms.
Closes #5459
2014-03-19 15:49:23 +00:00
Shay Banon d24600830b Use BytesReference to write to translog files
Instead of using byte arrays, pass the BytesReference to the actual translog file, and use the new copyTo(channel) method to write. This will improve by not potentially having to convert the data to a byte array
closes #5463
2014-03-19 14:12:42 +01:00
Martijn van Groningen 9001874a47 Invoke super.clone() instead of creating a new instance in the clone methods. 2014-03-19 11:12:14 +07:00
Boaz Leskes 7380a0a65a [Test] RecoveryWhileUnderLoadTests: smarter waiting for background indexers as it sometimes times out. 2014-03-19 00:12:03 +01:00
Benjamin Devèze f38d6f8a1b Minor improvements to Table class and add tests 2014-03-18 17:23:07 -05:00
Shay Banon 1f15c1e7de BytesReference usage to properly work when hasArray is not available
fix spelling in comment, + remove overcautious assert
2014-03-18 21:06:04 +01:00
Shay Banon 0f6c24d0c5 BytesReference usage to properly work when hasArray is not available
when a BytesReference doesn't have a backing array, properly handle the case in places where its applicable
closes #5455
2014-03-18 21:02:31 +01:00
Martijn van Groningen 7d3f49c43b [TEST] Added the option to specify on what ES version a node should run with. Useful for testing. 2014-03-18 21:36:46 +07:00
Alexander Reelsen 0ca7fddb66 Geo Point Fieldmapper: Allow distance for geohash precision
Even though mentioned differently in the docs, the geohash precision needed to
be an integer instead of a DistanceUnit.

Closes #5448
2014-03-18 14:09:57 +01:00
Shay Banon 0ef3b03be1 Move to use serial merge schedule by default
Today, we use ConcurrentMergeScheduler, and this can be painful since it is concurrent on a shard level, with a max of 3 threads doing concurrent merges. If there are several shards being indexed, then there will be a minor explosion of threads trying to do merges, all being throttled by our merge throttling.
Moving to serial merge scheduler will still maintain concurrency of merges across shards, as we have the merge thread pool that schedules those merges. It will just be a serial one on a specific shard.
Also, on serial merge scheduler, we now have a limit of how many merges it will do at one go, so it will let other shards get their fair chance of merging. We use the pending merges on IW to check if merges are needed or not for it.
Note, that if a merge is happening, it will not block due to a sync on the maybeMerge call at indexing (flush) time, since we wrap our merge scheduler with the EnabledMergeScheduler, where maybeMerge is not activated during indexing, only with explicit calls to IW#maybeMerge (see Merges).
closes #5447
2014-03-18 13:17:00 +01:00
Nik Everett 917c93d7ee Speed up phrase suggestion scoring
Two changes:
1.  In the StupidBackoffScorer only look for the trigram if there is a bigram.
2.  Cache the frequencies in WordScorer so we don't look them up again and
again and again.  This is implemented by wrapping the TermsEnum in a special
purpose wrapper that really only works in context of the WordScorer.

This provides a pretty substantial speedup when there are many candidates.

Closes #5395
2014-03-18 12:16:32 +01:00
Nik Everett d88ac0a95a Make indexRandom handle many documents better
* Index one at a time only rarely if doing more then 300.
* When launching async actions, take some care to make sure you don't already
have more then 150 other async actions in flight.
* When indexing in bulk split into chunks of 1000 documents.
2014-03-18 12:16:32 +01:00
Martijn van Groningen c501d9960a Made p/c override the clone() method. This is necessary since by default clone will make a shallow copy of the original object, while for p/c queries we need to make sure that the wrapped queries are also cloned. 2014-03-18 17:30:45 +07:00
Igor Motov a1192044f2 Add ability to get snapshot status for running snapshots
Closes #4946
2014-03-17 20:13:49 -04:00
Bill Hwang fe487373e6 Revert "Findbug warning supression"
This reverts commit 744eabad03.
2014-03-17 13:55:39 -07:00
Bill Hwang 744eabad03 Findbug warning supression
Added logic to enable findbug warnings supression via annotations
2014-03-17 13:35:37 -07:00
David Pilato 8dfdc6f647 [TEST] pre check download service working
Seen during CI tests, it could appears that the download service is not available for any reason.

This fix in test will check before each test which requires an internet access (annotated with @Network) that the download service we are testing is still working.

It won't fail the test but will mark the test as `Ignored` in case of failure.
2014-03-17 21:31:17 +01:00
Simon Willnauer b17e074f07 [TEST] Print tests.jvms and tests.client.ratio if set
We need to print options that can modify stream of events we need
to print it otherwise a seed might not reproduce the failure in
the tests.
2014-03-17 17:14:13 +01:00
uboness 35696aeb75 cleanup formatting in significant aggs package 2014-03-17 14:43:10 +01:00
Simon Willnauer ff039019c5 [TEST] Use client node such that we always have to do a round-trip to do a fetch. 2014-03-17 13:55:37 +01:00
Boaz Leskes 2a31bd83ef [Tests] QuorumLocalGatewayTests - Set mini_master_nodes earlier to make sure it has effect. ClusterServiceTests - remove a thread.sleep in favor of awaitBusy 2014-03-17 11:01:43 +01:00
Boaz Leskes fcfeab3a52 [Test] FullRollingRestartTests - correctly setting minimum_master_nodes
Also added a ElasticsearchIntegrationTest.setMinimumMasterNodes() helper function.
2014-03-17 10:37:56 +01:00
Boaz Leskes 6f0b15a27a [Test] IndexLifecycleActionTests - set minimum master node earlier to make sure it's in effect when needed. 2014-03-17 09:53:24 +01:00
Martijn van Groningen 9f52f755a3 [TEST] In PercolatorTests#testPercolateSorting_unsupportedField we need to be sure that the .percolator type exists 2014-03-17 10:50:57 +07:00
Martijn van Groningen b2a3904819 [TEST] Make sure that the facet fields exist. 2014-03-17 10:21:44 +07:00
Simon Willnauer ba8e34755f MulticastChannel returned wrong channel in shared mode
If the shared channel is used a wrong refrence was returned and
close calls couldn't find the listener since it go never registered
in that instance.
2014-03-16 18:19:21 +01:00
Simon Willnauer 43617cf5dc Count latch down if sendsPing throws exception
if the async sendPingsHandler throws an unexpected exception the
corresponding latch is never counted down. This might only happen
during node shutdown but can still cause starvation or test failures.
2014-03-16 16:08:36 +01:00
David Pilato f54e9246c1 Add _cat/plugins endpoint
If we want to have a full picture of versions running in a cluster, we need to add a `_cat/plugins` endpoint.

Response could look like:

```sh
% curl es2:9200/_cat/plugins?v
node component                        version   type url                                   desc
es1  mapper-attachments               1.7.0       j                                        Adds the attachment type allowing to parse difference attachment formats
es1  lang-javascript                  1.4.0       j                                        JavaScript plugin allowing to add javascript scripting support
es1  analysis-smartcn                 1.9.0       j                                        Smart Chinese analysis support
es1  marvel                           1.1.0      j/s http://localhost:9200/_plugins/marvel Elasticsearch Management & Monitoring
es1  kopf                             0.5.3       s  http://localhost:9200/_plugins/kopf   kopf - simple web administration tool for ElasticSearch
es2  mapper-attachments               2.0.0.RC1   j                                        Adds the attachment type allowing to parse difference attachment formats
es2  lang-javascript                  2.0.0.RC1   j                                        JavaScript plugin allowing to add javascript scripting support
es2  analysis-smartcn                 2.0.0.RC1   j                                        Smart Chinese analysis support
```

Closes #4824.
2014-03-16 12:16:09 +01:00
Simon Willnauer 965b85a663 [TEST] add mapping to MoreLikeThisActionTests to make sure doc mapper exists on all shards / nodes 2014-03-16 07:29:24 +01:00
Boaz Leskes 7f49d027b9 [Tests] RecoveryWhileUnderLoadTests - made sure background indexing threads are closed on errors.
Fixed minor logging discrepancies introduced with randomized shard count.
Added logging to recoverWhileUnderLoadWithNodeShutdown
Added logging ElasticsearchIntegrationTest.allowNodes to indicate what nodes were excluded.
recoverWhileRelocating's shard setting were potentially ignored (depending on key order in hashmaps)
2014-03-15 23:06:36 +01:00
EvanYellow 43b5d91de2 BulkProcessor process every n+1 docs instead of n
When you set a BulkProcessor with a bulk actions size of 100, it executes the bulk after 101 documents.

```java
BulkProcessor.builder(client(), listener).setBulkActions(100).setConcurrentRequests(1).setName("foo").build();
```

Same for size. If you set the bulk size to 1024 bytes, it will actually execute the bulk after 1025 bytes.

This patch fix it.

Closes #4265.
2014-03-15 12:32:09 +01:00
Simon Willnauer 8bc73531c2 [TEST] Fix CircuitBreakerServiceTests from failing due to rounding errors 2014-03-14 23:19:23 +01:00
Bill Hwang fd89c66668 Remove PMD clone warning
Removed PMD clone warning on class ElasticsearchMergePolicy
2014-03-14 13:40:57 -07:00
Simon Willnauer b622fd18a2 Improve exception handling in HttpDownloadHelper 2014-03-14 21:11:40 +01:00
Simon Willnauer d670575d74 [TEST] Reduce iterations in RandomAllocationDeciderTests 2014-03-14 20:39:07 +01:00
Simon Willnauer b708ab3944 Add slop to prefix phrase query after parsing query string
This fixes a regression introduced by #5005 where the query slop
was simply ignored when a `match_phrase_prefix` type was set.

Closes #5437
2014-03-14 20:26:03 +01:00
Simon Willnauer aa654a26c9 Improve resource handling in Parent/ChildQuery 2014-03-14 20:18:09 +01:00
Simon Willnauer 821173b5cf Enforce query instance checking before it wrapper as a filter
We have the default QueryWrapperFilter as well as our custom one while
our wrapper is explicitly marked as no_cache such that it will never
be included in a cache. This was not consistenly used and caused several
problems during tests where p/c related queries were used as filters
and ended up in the cache. This commit adds the QueryWrapperFilter
ctor to the forbidden APIs to enforce the query instance checks.
2014-03-14 20:18:01 +01:00
Adrien Grand 65d3b61b97 Add an option to force _optimize operations.
When forced, the index will be merged even if it contains a single segment with
no deletions.

Close #5243
2014-03-14 18:21:56 +01:00
markharwood b6dc7cecd5 Tidy significant terms warnings from Jenkins 2014-03-14 17:03:14 +00:00
Martijn van Groningen d73172c844 Also wrap p/c queries in CustomQueryWrappingFilter in the fquery qparser, because they otherwise p/c queries may work incorrectly. 2014-03-14 22:54:58 +07:00
Holger Hoffstätte 7b26e1fbf8 equals()/hashCode() & tests for ByteArrays to avoid materializing a
full byte[].

Fixes #5435
2014-03-14 16:32:03 +01:00
David Pilato 84b5b45644 Support externalValue() in mappers
Some mappers do not support externalValue() to be set. So plugin developers can't use it while building their own mappers.

Support added in this PR for:

* `BinaryFieldMapper`
* `BooleanFieldMapper`
* `GeoPointFieldMapper`
* `GeoShapeFieldMapper`

Closes #4986.
Relative to #4154.
2014-03-14 16:26:39 +01:00
Martijn van Groningen 6f80b7737a [TEST] Made sure that the parent exists (`foo` is the parent type and not `parent`) 2014-03-14 22:19:26 +07:00
Martijn van Groningen 7869562930 [TEST] Make sure that "assertNoFailures(searchResponse);" is used instead of "assertThat(searchResponse.getFailedShards(), equalTo(0));" to see what is failing.
Removed redundant "assertThat(searchResponse.getFailedShards(), equalTo(0));" checks
2014-03-14 22:13:18 +07:00
Shay Banon 3755f8e4df Allow to share multicast socket within jvm
Due to bugs in jvm (specifically OSX), running zen discovery tests causes for "socket close" failure on receive on multicast socket, and under some jvm versions, even crashes. This happens because of the creation of multiple multicast sockets within the same VM. In practice, in our tests, we use the same settings, so we can share the same multicast socket across multiple channels.
This change creates an abstraction called MulticastChannel, that can be shared, with ref counting. Today, the shared option is only enabled under OSX.
closes #5410
2014-03-14 14:58:05 +01:00
Adrien Grand b7de1becf4 Allow scripts to return more than 4 values in aggregations.
A missing call to ArrayUtil.grow prevented the array that stores the values
from growing in case the number of values returned by the script was higher
than the original size of the array.

Close #5414
2014-03-14 13:53:53 +01:00
David Pilato 2aaf81f8ef [TEST] pre check download service working
Seen during CI tests, it could appears that the download service is not available for any reason.

This fix in test will check before each test which requires an internet access (annotated with @Network) that the download service we are testing is still working.

It won't fail the test but will mark the test as `Ignored` in case of failure.
2014-03-14 13:22:38 +01:00
javanna d80dd00424 upgrade randomized-testing to 2.1.1
Note that the standard `atLeast` implementation has now Integer.MAX_VALUE as upper bound, thus it behaves differently from what we expect in our tests, as we never expect the upper bound to be that high.
Added our own `atLeast` to `AbstractRandomizedTest` so that it has the expected behaviour with a reasonable upper bound.
See https://github.com/carrotsearch/randomizedtesting/issues/131
2014-03-14 11:47:00 +01:00
markharwood 767bef0596 Significant_terms aggregation identifies terms that are significant rather than merely popular in a set.
Significance is related to the changes in document frequency observed between everyday use in the corpus and
frequency observed in the result set. The asciidocs include extensive details on the applications of this feature.

Closes #5146
2014-03-14 10:34:24 +00:00
Martijn van Groningen 6f8f773f8c Disabled query size estimation in percolator, because this is too expensive cpu wise.
Lucene's RamUsageEstimator.sizeOf(Object) is to expensive.
Query size estimation will be enabled when a cheaper way of query size estimation can be found.

Closes #5372
Relates to #5339
2014-03-14 15:29:24 +07:00
Adrien Grand a895349be5 [Test] Strengthen SimpleIndicesWarmerTests.testEagerLoading. 2014-03-14 09:26:56 +01:00
Martijn van Groningen 73383e2014 The p/c queries must always be wrapped in a CustomQueryWrappingFilter in fquery parser.
Also made assertions more descriptive when failing.
2014-03-14 14:12:05 +07:00
Martijn van Groningen bdfb59aa00 [TESTS] Specify unicast hosts and transport port range specifically 2014-03-14 10:51:34 +07:00
Igor Motov e029258fcf Add retry mechanism to get snapshot method
During snapshot finalization the snapshot file is getting overwritten. If we try to read the snapshot file at this moment we can get back an empty or incomplete snapshot. This change adds a retry mechanism in case of such failure.
2014-03-13 17:54:49 -04:00
Simon Willnauer 3bc6e834cd [TEST] Rewrite SearchStatsTests to not shut down nodes after indexing.
The test was shutting down nodes even if some of the inidces had only a
single shard. This caused that we basically had no shard active that
could sever the docs and caused random failures. This commit fixed the
test to rather allocate enough shards such that we never need to resize
the cluster which also makes the test faster.
2014-03-13 22:33:34 +01:00
Simon Willnauer 30ca937dbb [TEST] Stabelize ConcurrentPercolatorTests after # shard randomization 2014-03-13 21:09:13 +01:00
Simon Willnauer 10a1fcb65a [TEST] Add mapping to use an actual stopword analyzer
This test was added when the default  analyzer was filtering stopwords. But since
1.0 the default analyzer doesn't filter stopwords
2014-03-13 20:40:25 +01:00
Adrien Grand 5821fa042c Cardinality aggregation.
This aggregation computes unique term counts using the hyperloglog++ algorithm
which uses linear counting to estimate low cardinalities and hyperloglog on
higher cardinalities.

Since this algorithm works on hashes, it is useful for high-cardinality fields
to store the hash of values directly in the index, which is the purpose of
the new `murmur3` field type. This is less necessary on low-cardinality
string fields because the aggregator is smart enough to only compute the hash
once per unique value per segment thanks to ordinals, or on numeric fields
since hashing them is very fast.

Close #5426
2014-03-13 19:19:56 +01:00
Adrien Grand 4e5714b31f Remove AggregationContext.cacheRecycler(). 2014-03-13 19:02:47 +01:00
Adrien Grand 40d67c7e09 Make aggregations CacheRecycler-free.
Aggregations were still using CacheRecycler on the reduce phase. They are now
using page-based recycling for both the aggregation phase and the reduce phase.

Close #4929
2014-03-13 16:15:38 +01:00
Simon Willnauer 8a1e77c50c Allow edit distances > 2 on FuzzyLikeThisQuery
Due to a regression edit distances > 2 threw exceptions after unifying
the fuzziness factor in Elasticsearch `1.0`. This commit brings back the
expceted behavior.

Closes #5292
2014-03-13 14:21:15 +01:00
javanna 20d5481ac6 [TEST] Randomized number of replicas used for indices created during tests
Introduced two levels of randomization for the number of replicas when running tests:

1) through the existing random index template, which now sets a random number of replicas that can either be 0 or 1 that is shared across all the indices created in the same test method unless overwritten

2)  through createIndex and prepareCreate methods, between 0 and the number of data nodes available, similar to what happens using the indexSettings method, which changes for every createIndex or prepareCreate unless overwritten (overwrites index template for what concerns the number of replicas)

Added the following facilities to deal with the random number of replicas:

- made it possible to retrieve how many data nodes are available in the `TestCluster`
- added common methods similar to indexSettings, to be used in combination with createIndex and prepareCreate method and explicitly control the second level of randomization: numberOfReplicas, minimumNumberOfReplicas and maximumNumberOfReplicas

Tests that specified the number of replicas have been reviewed:
- removed manual replicas randomization where present, replaced with ordinary one that's now available
- adapted tests that didn't need a specific number of replicas to the new random behaviour
- also done some more cleanup, used common methods like assertAcked, ensureGreen, refresh, flush and refreshAndFlush where possible
2014-03-13 12:52:41 +01:00
Florian Schilling 81e537bd5e ContextSuggester
================

This commit extends the `CompletionSuggester` by context
informations. In example such a context informations can
be a simple string representing a category reducing the
suggestions in order to this category.

Three base implementations of these context informations
have been setup in this commit.

- a Category Context
- a Geo Context

All the mapping for these context informations are
specified within a context field in the completion
field that should use this kind of information.
2014-03-13 11:24:46 +01:00
Martijn van Groningen aecadfcc61 Invoke postCollection on aggregation collectors.
Also cleanup how facet and aggs collector are used inside the QueryCollector

Closes #5387
2014-03-13 17:21:07 +07:00
Martijn van Groningen ca65a2ee9e [TESTS] Added AwaitsFix 2014-03-13 15:35:08 +07:00
Martijn van Groningen 669a7ec498 For unicast zen discovery don't overwrite a ping response for a node if the previous ping response has a set master and the current response hasn't.
Per single main ping request we maintain the received ping response per node. Each node level ping response is mapped into that. If from a previous node level ping request the response has already been set for a node, it will be overwritten. We give higher value to the latest response. This change makes sure that this doesn't happen if the previous response has a set master and the current response hasn't a set master. Otherwise a node will lose the fact that another node has elected itself as master, the result of that would be that there would multiple master nodes in a single cluster.

Closes #5413
2014-03-13 15:25:05 +07:00
Martijn van Groningen 77abf027af [TESTS] Fix incorrect discovery options. 2014-03-13 14:11:01 +07:00
Lee Hinman e7ddef9974 compare with .bytes() instead of ByteSizeValue.equals() in breaker service 2014-03-12 20:47:14 -06:00
Costin Leau 76e92ffbea Disable by default plugins isolation 2014-03-13 01:11:06 +02:00
Adrien Grand 39ebf813ee [Test] Fix missing release. 2014-03-12 15:06:39 +01:00
Simon Willnauer aa43c7a69e [TEST] stabelize SearchStatsTests 2014-03-12 12:58:37 +01:00
Derek Slife 0236a77c0b Corrected issue with throttle type setting not respected upon updates 2014-03-12 10:50:22 +01:00
Shay Banon 965620c3ff Blocking writes on a tribe node creates a "blocks" tribe
fixes #5389
2014-03-12 10:30:18 +01:00
Martijn van Groningen d05b4ef769 Keep track of the exceptions instead of just flagging that an exception has occured. 2014-03-12 16:27:57 +07:00
Martijn van Groningen c841aa296a Added more logging 2014-03-12 14:51:11 +07:00
Igor Motov 39d2377be6 Use patched version of TermsFilter to prevent using wrong cached results
See LUCENE-5502

Closes #5363
2014-03-11 20:48:22 -04:00
javanna 5378fd7901 [TEST] fixed SimpleQueryTests#testMultiMatchQuery check for shard failures
It can happen that not all shards are ready, thus we won't have a total failure, but we do need to check that we have at least a failure. Checked also the message of the failure.
2014-03-12 00:55:17 +01:00
Igor Motov 7703183cef [TEST] Make sure that a snapshot is completed before trying to modify repository 2014-03-11 17:17:36 -04:00
Simon Willnauer 7e0beead9d [TEST] Beef up SearchStatsTests 2014-03-11 11:36:22 +01:00
Simon Willnauer bb83c823b6 [TEST] Fix SearchStatsTests to have all shards allocated
If randomization brings up a single shard per index in this test
we might run our searches on only one index which causes the assertions
to fail afterwards that's why we need to wait until everything is alloated.
2014-03-11 11:36:22 +01:00
Costin Leau 5182a3c3fe Add randomized plugin isolation to test infrastructure
fix #5296
2014-03-11 11:45:07 +02:00
Martijn van Groningen a465d97adb Changed debug log to warn for when IW#rollback fails with an exception other than AlreadyClosedException 2014-03-11 13:01:02 +07:00
Igor Motov a0206acbc6 Improve speed of running snapshot cancelation
The delete snapshot operation on a running snapshot should cancel the snapshot execution. However, it interrupts the snapshot only when currently running snapshot files are completely copied, which might take a long time for large files.

Closes #5242
2014-03-10 20:24:04 -04:00
Andrew Selden 673c282abd REST Testing framework enhancement
Adding operators 'lte' and 'gte' to our REST test framework. These
operators test for, respectively, less-than-or-equal and
greater-than-or-equal.
2014-03-10 15:08:43 -07:00
Boaz Leskes b7a95d11a7 Introduced VersionType.FORCE & VersionType.EXTERNAL_GTE
Also added "external_gt" as an alias name for VersionType.EXTERNAL , accessible for the rest layer.

Closes #4213 , Closes #2946
2014-03-10 21:07:17 +01:00
uboness bf8d8dc33e Fixed a bug in date_histogram aggregation parsing
- pre_zone_adjust_large_interval was not parsed properly
 - added tests for pre_zone and pre_zone_adjust_large_interval
 - changed DateHistogram#getBucketByKey(String) to support date formats (next to numeric strings)
 - added randomized testing for fetching the bucket by key in date_histogram tests
 - added missing "format" support in DateHistogramBuilder

 Closes #5375
2014-03-10 19:39:34 +01:00
javanna 48f6df3f8e [TEST] Raise shardSize parameter if number of shards is > 5 2014-03-10 18:35:29 +01:00
javanna 045e43163f [TEST] fixed SimpleQueryTests#testDateRangeInQueryString to specify the mappings upfront and wait for green 2014-03-10 17:50:22 +01:00
Simon Willnauer af4c112907 [TEST] Raise shardSize parameter if number of shards is > 5 2014-03-10 17:39:27 +01:00
Martijn van Groningen e9bc7a8cd1 [TEST] Moving mapping creation to create index call, this will make sure that in the test the mapping is always available on all nodes. 2014-03-10 19:21:54 +07:00
javanna d5aaa90f34 [TEST] Randomized number of shards used for indices created during tests
Introduced two levels of randomization for the number of shards (between 1 and 10) when running tests:

1) through the existing random index template, which now sets a random number of shards that is shared across all the indices created in the same test method unless overwritten

2) through `createIndex` and `prepareCreate` methods, similar to what happens using the `indexSettings` method, which changes for every `createIndex` or `prepareCreate` unless overwritten (overwrites index template for what concerns the number of shards)

Added the following facilities to deal with the random number of shards:
- `getNumShards` to retrieve the number of shards of a given existing index, useful when doing comparisons based on the number of shards and we can avoid specifying a static number. The method returns an object containing the number of primaries, number of replicas and the total number of shards for the existing index

- added `assertFailures` that checks that a shard failure happened during a search request, either partial failure or total (all shards failed). Checks also the error code and the error message related to the failure. This is needed as without knowing the number of shards upfront, when simulating errors we can run into either partial (search returns partial results and failures) or total failures (search returns an error)

- added common methods similar to `indexSettings`, to be used in combination with `createIndex` and `prepareCreate` method and explicitly control the second level of randomization: `numberOfShards`, `minimumNumberOfShards` and `maximumNumberOfShards`. Added also `numberOfReplicas` despite the number of replicas is not randomized (default not specified but can be overwritten by tests)

Tests that specified the number of shards have been reviewed and the results follow:
- removed number_of_shards in node settings, ignored anyway as it would be overwritten by both mechanisms above
- remove specific number of shards when not needed
- removed manual shards randomization where present, replaced with ordinary one that's now available
- adapted tests that didn't need a specific number of shards to the new random behaviour
- fixed a couple of test bugs (e.g. 3 levels parent child test could only work on a single shard as the routing key used for grand-children wasn't correct)
- also done some cleanup, shared code through shard size facets and aggs tests and used common methods like `assertAcked`, `ensureGreen`, `refresh`, `flush` and `refreshAndFlush` where possible
- made sure that `indexSettings()` is always used as a basis when using `prepareCreate` to inject specific settings
- converted indexRandom(false, ...) + refresh to indexRandom(true, ...)
2014-03-10 13:01:52 +01:00
Boaz Leskes bb63b3fa61 Improve error detection in geo_filter parsing
Relates to #5370
2014-03-10 12:22:41 +01:00
Martijn van Groningen 502f24d7e4 Also make use of the thread local memory reuse for a document being percolated with nested objects.
The memory index will only be reused for the root doc, since most of the times that will be the biggest document.
2014-03-10 13:53:02 +07:00
Martijn van Groningen 52d099dfae Don't throw UOE in PercolateContext#from and #size
Create mapping in PercolatorTests#testPercolateSorting_unsupportedField in create index call instead of lazily via index call.
2014-03-10 11:59:24 +07:00
Lee Hinman 51f869cfc2 Increase RamAccountingTermsEnum flush size from 1mb to 5mb
Reduces the number of logs when TRACE logging is turned on for the
circuit breaker
2014-03-07 16:30:43 -07:00
Andrew Raines 2f48be597e Display all available endpoints by default at /_cat
Closes #5106
2014-03-07 13:21:43 -06:00
Alexander Reelsen 0555170f46 [TEST] Replaced RestApiParser assertions with exceptions for better error messages 2014-03-07 09:35:49 +01:00
uboness da938a659d Introduced a new IMMEDIATE priority - higher than URGENT
* applied to cluster update settings, reroute, node join/leave events, node failure

Closes #5062
2014-03-06 17:02:14 +01:00
Shay Banon 5da883799a since we no longer have bytebuffer dir, this test is not needed 2014-03-06 14:52:54 +00:00
javanna 4d5870807a [TEST] removed explicit index deletion from AnalyzeActionTests, more ensureGreen 2014-03-06 12:23:51 +01:00
Brusic 95274c18c5 Added support for char filters in the analyze API
Closes #5148
2014-03-06 12:23:51 +01:00
javanna 9f502b0129 Improved how aliases get parsed in create index
Added also CreateIndexRequest#aliases(BytesReference) method
2014-03-06 11:26:49 +01:00
James Brook a93d6d55a5 Added support for aliases to index templates
Adapted existing PR (#2739) to updated code (post #4920), added tests and docs (@javanna)

Closes #1825
2014-03-06 11:11:07 +01:00
Shay Banon 56fa5458e6 Nicer failure message when node should not connect to another in nodes API
There are cases where nodes should not connect to another node. For example, client nodes do not connect to other client nodes. When executing a nodes level API, we should have a nicer failure indicating that, and not log it by default, as its not a real failure
2014-03-06 10:08:42 +00:00
uboness 9d0fc76f54 Added support for sorting buckets based on sub aggregations
Supports sorting on sub-aggs down the current hierarchy. This is supported as long as the aggregation in the specified order path are of a single-bucket type, where the last aggregation in the path points to either a single-bucket aggregation or a metrics one. If it's a single-bucket aggregation, the sort will be applied on the document count in the bucket (i.e. doc_count), and if it is a metrics type, the sort will be applied on the pointed out metric (in case of a single-metric aggregations, such as avg, the sort will be applied on the single metric value)

 NOTE: this commit adds a constraint on what should be considered a valid aggregation name. Aggregations names must be alpha-numeric and may contain '-' and '_'.

 Closes #5253
2014-03-06 00:05:27 +01:00
Shay Banon 941ffe0bf9 if there is no master node id, make sure not to fail the cat call, and report x 2014-03-05 17:56:27 +00:00
Lee Hinman 60f5cf55f3 Fix issue where circuit breaker was always reset to 80% upon startup 2014-03-05 07:32:17 -07:00
Shay Banon 992747a159 Force merges to not happen when indexing a doc / flush
Today, even though our merge policy doesn't return new merge specs on SEGMENT_FLUSH, merge on the scheduler is still called on flush time, and can cause merges to stall indexing during merges. Both for the concurrent merge scheduler (the default) and the serial merge scheduler. This behavior become worse when throttling kicks in (today at 20mb per sec).

In order to solve it (outside of Lucene for now), we wrap the merge scheduler with an EnableMergeScheduler, where, on the thread level, using a thread local, the call to merge can be enabled/disabled.

A Merges helper class is added where all explicit merges operations should go through. If the scheduler is the enabled one, it will enable merges before calling the relevant explicit method call. In order to make sure Merges is the only class that calls the explicit merge calls, the IW variant of them is added to the forbidden APIs list.

closes #5319
2014-03-05 12:26:26 +00:00
Lee Hinman 23471cd72c Implement custom circuit breaker estimator for parent/child field data 2014-03-04 10:52:19 -07:00
Lee Hinman 2bcede168c check for null term in PagedBytesEstimator.bytesPerValue()
Fixes #5326
2014-03-04 10:18:13 -07:00
Holger Hoffstätte 9c7032c427 Rewrite BytesStreamOutput on top of BigArrays/ByteArray.
Fix for #5159
2014-03-04 14:51:26 +01:00
Adrien Grand 5ae1236857 Fix `metric` impl on unmapped fields. 2014-03-04 11:13:38 +01:00
Adrien Grand 610694446a Fix NPE/AIOOBE when building a bucket which has not been collected.
Close #5048
2014-03-04 09:55:21 +01:00
Adrien Grand 66b589d58e Added unit tests for terms and histogram sorting on sub aggregations that return NaN. 2014-03-04 09:46:13 +01:00
Nils Dijk 0e57915536 Fix sorting of NaN values in terms aggregations.
Closes #5236.
2014-03-04 09:45:53 +01:00
Adrien Grand 5008b04cf4 Terms aggs: only use ordinals on low-cardinality fields by default.
Close #5303
2014-03-04 09:38:20 +01:00
Adrien Grand 0230ecbeac Fix test bug: a too low compression level can make accuracy terrible. 2014-03-03 20:31:38 +01:00
Zachary Tong 7b16c5857d Percentiles aggregation.
A new metric aggregation that can compute approximate values of arbitrary
percentiles.

Close #5323
2014-03-03 18:06:14 +01:00
javanna 7d3cd89207 [TEST] added support for replacing stashed values within objects and lists in our REST tests 2014-03-03 13:34:22 +01:00
Costin Leau 6e955e682b fix typo causing incorrect plugin properties lookup in jars
relates #5261
2014-03-02 21:31:23 +02:00
Costin Leau bf19dc699a fix incorrect array search in test (by sorting it first)
relates to #5621
2014-02-28 23:59:08 +02:00
Adrien Grand 2c5d77cde1 Reuse pages more agressively in BigArrays.
Pages are now going to be reused when the size of the array is greater than
${page_size}/2 (as opposed to ${page_size} currently).

Close #5299
2014-02-28 21:31:10 +01:00
Adrien Grand 5723603987 Prevent page-tracking checks from spreading across tests. 2014-02-28 21:31:10 +01:00
Adrien Grand 7af63700c9 Remove same-thread checks when recycling (see #5254). 2014-02-28 21:31:10 +01:00
Costin Leau e5e8e592d8 make test assertions relative in IsolatedPluginTests
relates to #5621
2014-02-28 19:11:53 +02:00
Costin Leau 95fa42b701 fix failing IsolatedPluginTests (change numNodes to 0)
(cherry picked from commit f26a369a78ade032df44fcf331f378644f74b9ea)
2014-02-28 16:21:11 +02:00
Costin Leau a19b77484e Add plugin class space isolation
Each plugin is now loaded in its own classloader to prevent class
conflicts when loading different versions of the same library. It
 is enabled by default and is configurable through
 `plugins.isolation` settings .Additionally, each plugin can
change its own isolation through the `isolation` property in
`es-plugin.properties`- if not specified, the global setting in
ES applies.

Closes #5261
2014-02-28 15:05:20 +02:00
javanna 91f5be6816 [TEST] more assertAcked in SharedClusterShapshotRestoreTests 2014-02-28 12:54:10 +01:00
Martijn van Groningen 03f6f523b0 Added more trace and debug logging 2014-02-28 11:19:18 +01:00
Simon Willnauer a1f66daea9 Move ensureEstimatedStats() after index wiping to ensure everything is cleaned up once the index is removed 2014-02-27 23:11:43 +01:00
Adrien Grand a9592e5523 Add assertion to not forget to replace reflection with the new FilterAtomicReader.unwrap. 2014-02-27 22:41:40 +01:00
Simon Willnauer 86bfa6ecdc Improve error reporting on breaker stats assertion 2014-02-27 22:39:39 +01:00
Lee Hinman 550c407994 Remove trace logging from testBreakerWithRandomExceptions() 2014-02-27 13:24:11 -07:00
Lee Hinman e53a43800e Add `explain` flag support to the reroute API
By specifying the `explain` flag, an explanation for the reason a
command can or cannot be executed is returned. No allocation commands
are actually performed.

Returns a response similar to:

{
  "state": {...cluster state...},
  "acknowledged": true,
  "explanations" : [ {
    "command" : "cancel",
      "parameters" : {
        "index" : "decide",
        "shard" : 0,
        "node" : "IvpoKRdtRiGrQ_WKtt4_4w",
        "allow_primary" : false
      },
      "decisions" : [ {
        "decider" : "cancel_allocation_command",
        "decision" : "YES",
        "explanation" : "..."
        } ]
     }, {
      "command" : "move",
      "parameters" : {
        "index" : "decide",
        "shard" : 0,
        "from_node" : "IvpoKRdtRiGrQ_WKtt4_4w",
        "to_node" : "IvpoKRdtRiGrQ_WKtt4_4w"
       },
       "decisions" : [ {
         "decider" : "same_shard",
         "decision" : "NO",
         "explanation" : "shard cannot be allocated on same node [IvpoKRdtRiGrQ_WKtt4_4w] it already exists on"
       },
       etc
       ]
  }]
}

also removes AllocationExplanation from cluster state

Closes #2483
Closes #5169
2014-02-27 09:48:51 -07:00
Simon Willnauer fe9de7fba2 Use FieldMapper to create the low level term queries in CommonTermQuery
Closes #5258
2014-02-27 14:50:42 +01:00
Adrien Grand 3839454168 Add tracking of allocated arrays.
The BigArrays utility class is useful to generate arrays of various sizes: when
small, arrays will be allocated directly on the heap while larger arrays are
going to be paged and to recycle pages through PageCacheRecycler. We already
have tracking for pages but this is not triggered very often since it only
happens on large amounts of data while our tests work on small amounts of data
in order to be fast.

Tracking arrays directly helps make sure that we never forget to release them.

This pull request also improves testing by:

 - putting random content in the arrays upon release: this makes sure that
   consumers don't use these arrays anymore when they are released as their
   content may be subject to use for another purpose since pages are recycled

 - putting random content in the arrays upon creation and resize when
   `clearOnResize` is `false`.

The major difference with `master` is that the `BigArrays` class is now
instanciable, injected via Guice and usually available through the
`SearchContext`. This way, it can be mocked for tests.
2014-02-27 14:01:12 +01:00
Martijn van Groningen d167a0139a estimator#afterLoad should be invoked once only per reader.
It was being invoked once per reader and parent type combination resulting in more memory being reported to the circuit breaker than actually being used in field data.
2014-02-27 13:26:54 +01:00
Simon Willnauer aacc169007 Add RamUsageEstimator assertion to ElasticsearchIntegrationTest 2014-02-27 11:28:27 +01:00
Lee Hinman 9052838656 Enable trace logging for RandomExceptionCircuitBreakerTests.testBreakerWithRandomExceptions 2014-02-26 15:53:53 -07:00
Adrien Grand e1634f66bb Improve `arc` geo-distance accuracy.
Close #5192
2014-02-26 22:21:10 +01:00
Simon Willnauer 9160516b28 Expose `filler_token` via ShingleTokenFilterFactory
Lucene 4.7 supports a setter for the `filler_token` that is
inserted if there are gaps in the token stream. This change exposes
this setting.

Closes #4307
2014-02-26 22:21:10 +01:00
Simon Willnauer 30d7b8de2f Upgrade to Lucene 4.7
Closes #5104
Closes #5129
Closes #3757
2014-02-26 22:21:10 +01:00
Martijn van Groningen f488dce18f Moved AbstractHash, BytesRefHash and LongHash to o.e.common.util 2014-02-26 20:33:59 +01:00
Martijn van Groningen 53d5933c15 Added missing licence header. 2014-02-26 20:16:14 +01:00
Martijn van Groningen 0e780b7e99 Migrated p/c queries from id cache to field data. Changed p/c queries to use paging data structures (BytesRefHash, BigFloatArray, BigIntArray) instead of hppc maps / sets.
Also removed the id cache.

Closes #4930
2014-02-26 19:46:05 +01:00
Lee Hinman 5429019920 refactor SimpleQueryParser settings into separate class, add "lenient" option
Fixes #5011
2014-02-26 10:40:34 -07:00
javanna e967400522 Expose delete by query shard failures follow-up
- Removed if conditions on index name and shard_id
- Added REST test
2014-02-26 13:14:52 +01:00
Kevin 850b9d4aab Add failures reason to delete by query response
Closes #5093
2014-02-26 13:14:52 +01:00
Dawid Weiss bdced9c772 Class name typo. 2014-02-26 09:54:55 +01:00
Luca Cavanna c58c9cd352 Refactored TransportIndexReplicationOperationAction to be able to expose the shard id related to a shard failure
The `ShardOperationFailedException` is now created within `TransportIndexReplicationAction` passing in the current shard id as a constructor argument.
Also replaced `AtomicReferenceArray<Object>` with `AtomicReferenceArray<ShardActionResult>`, where `ShardActionResult` wraps the `ShardResponse` or the failure, containing all the needed info.
2014-02-25 17:29:12 +01:00
Dawid Weiss ad547eb7fb Remove nanoTime in global cluster randomization in favor of deriving the
seed from the main master seed. Removed shared cluster's seed entirely.

The problem here is that if you don't give cluster's seed then test times
fluctuate oddly, even for a fixed -Dtests.seed=... This shouldn't be the
case -- ideally, the test ran with the same master seed should reproduce
pretty much with the same execution time (and internal logic, obviously).

From the code point of view "global" variables are indeed a problem
because JUnit has no notion of before-suite hooks. And RandomizedRunner
doesn't support context accesses in static class initializers (this is
intentional because there is no way to determine when such initializers
will be executed). A workaround is to move such static global variables to
lazily-initialized methods and invoke them (once) in @BeforeClass hooks.
2014-02-25 16:51:55 +01:00
Shay Banon 83ae1bd55e remove thread local recycler
the thread local recycler requires obtain and recycle to be called on the same thread, while other recyclers do not. Also, it can create heavy recycle usage since it depends on the threads that its being used on. The concurrent / pinned thread base one is by far better than the pure thread local (and is the default) one since it more easily bounds the elements recycled, while still allowing to mix obtain and recycle across threads.

We will end up using the paged recyclers more and more, for example, in our networking output buffer, where obtaining will happen on one thread, while recycling can potentially occur on another thread (the callback thread). Since the limit of binding to a thread of the 2 calls is not really needed, and our best implementation supports going cross threads, there is no real need to impose this restriction.
2014-02-25 14:59:41 +01:00
Simon Willnauer 46fe348b8b Add coming 0.90.12 version to the constants 2014-02-25 10:35:01 +01:00
Simon Willnauer 4a48b93cf5 Implement BlendedTermQuery#extractTerms to support highlighing.
some of the highlighters require term extraction to be implemented in
order to work. BlendedTermQuery doesn't implement the trivial extraction.

Closes #5246
2014-02-25 10:13:08 +01:00
Holger Hoffstätte bac09e2926 Recycler: better lifecycle control for pooled instances (#5214)
- introduce additional destroy() callback that allows better control
over internals of recycled data
- introduced AbstractRecyclerC as superclass for Recycler factories
(Adrien) with empty destroy() by default
- added tests for destroy()
- cleaned up Recycler tests (reduce copy&paste)
2014-02-25 08:49:13 +01:00
javanna 16e350b266 Made SearchContextHighlight.Field class immutable to prevent from erroneously updating it, as it doesn't necessarily map to a single field
A Field instance can map to multiple actual fields when using wildcard expressions. Each actual field should use the proper highlighter depending on the available data structure (e.g. term_vectors), while we currently select the highlighter for the first field and we keep using the same for all the fields that match the wildcard expression.

Modified also how the PercolateContext sets the forceSource option, in a global manner now rather than per field.

Closes #5175
2014-02-25 00:17:01 +01:00
Simon Willnauer 92f132aede Need use ensureYellow() b/c get mapping request checks on actual shard instead of master node 2014-02-24 20:58:44 +01:00
Martijn van Groningen 8c3fa0551f Need use ensureYellow() b/c get mapping request checks the mapping on the master node 2014-02-24 17:49:45 +01:00
Martijn van Groningen 7064056d13 Added TransportGetFieldMappingsIndexAction that uses TransportSingleCustomOperationAction as base class, with the goal to reuse common logic (like: retry on failures, shard picking, connecting to nodes) 2014-02-24 15:54:24 +01:00
Martijn van Groningen d63ab4bd05 [TEST] Added get field mapping test variant that tests with a cluster that has a master only node. 2014-02-24 14:49:22 +01:00
Boaz Leskes 3e10810a8e Change GetFieldMapping API to broadcast requests to nodes hosting the relevant indices.
This is due to the fact that have to have mappers in order to return the response.

Closes #5177
2014-02-24 14:49:22 +01:00
David Pilato ad8a482d19 NPE in PluginsService when starting elasticsearch with a wrong user
When starting elasticsearch with a wrong linux user, it could generate a `NullPointerException` when `PluginsService` tries to list available plugins in `./plugins` dir.

To reproduce:

* create a plugins directory with `rwx` rights for root user only
* launch elasticsearch from another account (elasticsearch for example)

It was supposed to be fixed with #4186, but sadly it's not :-(

Closes #5195.
2014-02-24 11:47:13 +01:00
Igor Motov 7209f9f40b Open correct (renamed) index on restore
Closes #5212
2014-02-22 19:05:36 -05:00
Igor Motov dab1f76e03 Restore process should replace the mapping and settings if index already exists
Closes #5210
2014-02-22 18:28:19 -05:00
Luca Cavanna 4e6610a798 Fixed multi term queries support in postings highlighter for non top-level queries
In #4052 we added support for highlighting multi term queries using the postings highlighter. That worked only for top-level queries though, and not for multi term queries that are nested for instance within a bool query, or filtered query, or a constant score query.

The way we make this work is by walking the query structure and temporarily overriding the query rewrite method with a method that allows for multi terms extraction.

Closes #5102
2014-02-21 21:43:40 +01:00
javanna e913b6626f Fixed field names returned when using wildcard expression to specify fields to highlight
Closes #5221
2014-02-21 18:56:35 +01:00
javanna d94b25278a Fixed per-field forceSource highlighting option
Closes #5220
2014-02-21 17:46:32 +01:00
uboness 164f7b981e Fixed an issue where and IndexOutOfBoundsException was thrown when a date_/histogram aggregation was defined on unmapped field and also had a sub aggregation. The root cause there was that in such case, the estimated bucket count was 0, and the code was not designed to handle that well.
Closes #5179
2014-02-21 02:51:46 +01:00
Benjamin Devèze 57fcd761f2 Fix possible exception in toCamelCase method 2014-02-21 00:08:13 +01:00
Benjamin Devèze bb219eff8d Remove useless URL instanciation 2014-02-21 00:07:48 +01:00
Kelsey Francis 55101edb46 Fix yamlBuilder() to return YAML builder instead of SMILE
Closes #5185
2014-02-21 00:00:28 +01:00
Lee Hinman 8f8cc7205d Add "locale" parameter to query_string and simple_query_string
Fixes #5128

Remove java 7 specific Locale functions, add "coming[1.1.0]" to documentation

add LocaleUtils utility class for dealing with Locale functions
2014-02-20 15:53:08 -07:00
Adrien Grand 96d028e721 Disable RAM usage estimation on Lucene 3.x segments.
Close #5201
2014-02-20 23:45:22 +01:00
uboness 428080b49a Changed the caching of FieldDataSource in aggs to be based on field name + required Value Source type as a combi key (used to be only field name). This fixes a problem where multiple aggregations where defined on the same field, yet require different types of value sources.
Closes #5190
2014-02-20 22:33:32 +01:00
David Pilato ecb3df6f4c Wait for REST Service to start
When running tests for site plugins, it could happen that the REST Service is not fully started and not ready immediately to serve HTTP requests.
It gives `503 Service Unavailable` error in that case.

This patch will gives 5 seconds before failing the test.
2014-02-20 17:57:58 +01:00
Isabel Drost-Fromm ff7a9ff1fd Fixing license headers. 2014-02-20 14:35:57 +01:00
Isabel Drost-Fromm 48004ff8a5 Add mustache templating to query execution.
Adds support for storing mustache based query templates that can later be filled
with query parameter values at execution time. Templates may be both quoted,
non-quoted and referencing templates stored in config/scripts/*.mustache by file
name.

See docs/reference/query-dsl/queries/template-query.asciidoc for templating
examples.

Implementation detail: mustache itself is being shaded as it depends directly on
guava - so having it marked optional but included in the final distribution
raises chances of version conflicts downstream.

Fixes #4879
2014-02-20 12:21:59 +01:00
Adrien Grand f5b3c08df2 Make _exists_/_missing_ behave consistently with exists/missing.
`_exists_` and `_missing_` miss field name expansion that `exists` and
`missing` have, which allows these filters to work on `object` fields.

Close #5142
2014-02-20 09:01:56 +01:00
Simon Willnauer d5f1e6f236 [TEST] Update testNGramCopyField to reflect the effect of an index_analyzer 2014-02-19 22:51:34 +01:00
javanna 1bca4971fa [TEST] Added index templates tests for broken mapping and invalid settings scenarios 2014-02-19 20:03:12 +01:00