Commit Graph

5075 Commits

Author SHA1 Message Date
Martijn van Groningen dbfac659f9 Aggregation top_hits: Move sort resolution to the reduce method, so it is always guaranteed to be invoked. 2014-09-10 17:51:07 +02:00
Boaz Leskes bb1dfbfa42 missing logging brackets 2014-09-10 16:07:15 +02:00
Boaz Leskes 7d80db7c2c Gateway: added trace logging to translog recovery logic
Enabled it in SimpleRecoveryLocalGatewayTests
2014-09-10 16:02:44 +02:00
Boaz Leskes 4f8ddd97bf [Rest] reroute API response didn't filter metadata
By default the reroute API should return the new cluster state, excluding the metadata. It was however it was wrongly using an old parameter (filter_metadata) and thus failed to do so. This commits restores but wiring it to the correct `metric` parameter. We also add an enum representing the possible metrics, to avoid similar future mistakes.

Closes #7520
Closes #7523
2014-09-10 14:48:06 +02:00
Martijn van Groningen ab555e0a33 Test: Added more assertions 2014-09-10 14:45:46 +02:00
Boaz Leskes 09db2e2a27 Tests: log when an ensure green/yellow comes back
Also added some trace logging to SimpleRecoveryLocalGatewayTests
2014-09-10 14:42:35 +02:00
Boaz Leskes fc89316b1b Store: improved trace logging for shard active requests 2014-09-10 12:35:09 +02:00
Boaz Leskes 18f58682e7 Tests: add logging to LocalGatewayIndexStateTests 2014-09-10 12:29:00 +02:00
javanna 5bea31cb96 Internal: refactor copy headers mechanism
The functionality of copying headers in the REST layer (from REST requests to transport requests) remains the same. Made it a bit nicer by introducing a RestClientFactory component that is a singleton and allows to register useful headers without requiring static methods.

Plugins just have to inject the RestClientFactory now, and call its `addRelevantHeaders` method that is not static anymore.

Relates to #6513
Closes #7594
2014-09-10 12:05:53 +02:00
Martijn van Groningen 6f763bded9 Test: Enabled ChildrenTests#testParentWithMultipleBuckets with more logging 2014-09-10 11:19:30 +02:00
Simon Willnauer cb839b56b2 [ThreadPool] Use DirectExecutor instead of deprecated API
Guava deprecated MoreExecutors#sameThreadExecutor in favour of
a more efficient implemenation. We should move over to the new impl.
2014-09-10 09:36:30 +02:00
Ryan Ernst 4638d23484 Tests: Re-enable BWC analysis test, skipping strings that could cause issue with LUCENE-5927. 2014-09-09 14:30:31 -07:00
Simon Willnauer 38d88b2e2c [TEST] Added basic test for InternalTestCluster reproducibility 2014-09-09 21:48:42 +02:00
Britta Weber 1138a6ae60 [TEST] fix rounding issue 2014-09-09 19:44:47 +02:00
Simon Willnauer b0cf929637 [TEST] use local random instance rather than thread local version
This influences reprocucibility dramatically since it modifies the
test random sequence while it should just use the private random
instance.
2014-09-09 18:31:41 +02:00
javanna ee3cbce118 Internal: make sure that the request context is always copied from REST to transport layer
Also renamed HeadersCopyClientTests since it tests a class that was renamed and removed randomization around client wrapper, as it now needs to be weapped all the time to copy the context, doesn't depend on useful headers that have been registered anymore.

Relates to #7610
2014-09-09 18:06:46 +02:00
Colin Goodheart-Smithe c8a3460f39 [TEST] more debugging for GeoBoundsTests 2014-09-09 16:49:06 +01:00
Lee Hinman c328397eb6 [TEST] Disable translog flush in CorruptedTranslogTests 2014-09-09 17:48:37 +02:00
Simon Willnauer 32201c762b [TEST] Ensure BWC test run even if node.mode=local is set
Today we throw an error if local transport is configured with BWC tests.
Yet, the BWC test need network to be enabled so test can just set the
required defaults.

Closes #7660
2014-09-09 17:30:43 +02:00
Lee Hinman fc0ee42c07 Fix ordering of Regex.simpleMatch() parameters
Previously we incorrectly sent them in the wrong order, which can cause
validators not to be run for dynamic settings that have been added
matching a particular wildcard.

Fixes #7651
2014-09-09 16:23:55 +02:00
Lee Hinman 57bcd65ca4 Simplify translog interface
get rid of readSource() entirely, it sucked, Operations should be able
to provide the source themselves.

No more TranslogStream headers, you are now required to pass an
StreamInput or StreamOutput for all operations, which means no extra
state is needed and no need to construct new versions when detecting the
version.

Read and write translog op sizes in TranslogStreams

Previously we handled these integers outside of the translog stream
itself, which was very unclean because other code had to know about
reading the size, or about writing the correct header sometimes.

There is some additional code in LocalIndexShardGateway to handle the
legacy case for older translogs, because we need to read and discard the
size in order to maintain the compatibility for the streaming
operations (they did not read or write the size for 1.3.x and earlier).

Additionally, we need to handle a case where the header is truncated
when recovering from disk

Use a NoopStreamOutput instead of byte arrays

Instead of writing translog operations to a temporary byte array and
then writing that byte array to the stream, we now write the operation
twice, once to a No-op stream to get the size, then again to the real
size.

This trades a little more CPU usage for less memory usage.
2014-09-09 15:26:13 +02:00
Martijn van Groningen 52f1ab6e16 Core: Added the `index.query.parse.allow_unmapped_fields` setting to fail queries if they refer to unmapped fields.
The percolator and filters in aliases by default enforce strict query parsing.

Closes #7335
2014-09-09 15:00:47 +02:00
Alexander Reelsen bd0eb32d9c CORS: Disable by default
In order to deliver a more secure out-of-the-box configuration this commit
disables cross-origin resource sharing by default.

Closes #7151
2014-09-09 11:09:03 +02:00
Ryan Ernst 789c0a9a1b Quiet BWC analysis test case for now.
See https://issues.apache.org/jira/browse/LUCENE-5927.
2014-09-08 14:23:11 -07:00
Simon Willnauer 2619911e17 [STORE] Write Snapshots directly to the blobstore stream
Today we serialize the snashot metadata to a byte array and then copy
the byte array to a stream. Instead this commit moves the serialization
directly to the target stream without the intermediate representation.

Closes #7637
2014-09-08 22:19:24 +02:00
Colin Goodheart-Smithe b127b52fd3 Revert "Aggregations: Adds ability to sort on multiple criteria"
This reverts commit bfedd11ffa.
2014-09-08 20:27:19 +01:00
Colin Goodheart-Smithe 13d01af940 Revert "[TEST] added @AwaitsFix to failing StringTermsTests while I work on a fix"
This reverts commit 18a713a2ae.
2014-09-08 20:27:16 +01:00
Simon Willnauer ce2e65f6e7 [TEST] Don't print BWC test path - it's different on every machine 2014-09-08 21:10:09 +02:00
Boaz Leskes 9054ce5569 [Stats] update action returns before updating stats for `NONE` operations
We keep around a noop stats indicating how many update operations ended up not updating the document (typically because it didn't change). However, the TransportUpdateAction update that counter only after returning the result. This can throw off stats check which are done immediately after, potentially causing test failures.

Closes #7639
2014-09-08 20:46:07 +02:00
Simon Willnauer 72c4cb51cc [CORE] Unify search context cleanup
Today there are two different ways to cleanup search contexts which can
potentially lead to double releasing of a context. This commit unifies
the methods and prevents double closing.

Closes #7625
2014-09-08 20:36:19 +02:00
Andrew Selden 80a3038f83 Make .zip and .tar.gz release artifacts contain same files.
This commit changes the build to include .exe and sigar/.dll files in
both the zip and tar artifacts.

Closes #2793
2014-09-08 10:43:09 -07:00
Colin Goodheart-Smithe 18a713a2ae [TEST] added @AwaitsFix to failing StringTermsTests while I work on a fix 2014-09-08 16:28:12 +01:00
Britta Weber ee5221bd22 _timestamp: enable mapper properties merging
Updates on the _timestamp field were silently ignored.
Now _timestamp undergoes the same merge as regular
fields. This includes exceptions if a property cannot
be changed.
"path" and "default" cannot be changed.

closes #5772
closes #6958
closes #7614
partially fixes #777
2014-09-08 17:17:06 +02:00
Colin Goodheart-Smithe bfedd11ffa Aggregations: Adds ability to sort on multiple criteria
The terms aggregation can now support sorting on multiple criteria by replacing the sort object with an array or sort object whose order signifies the priority of the sort. The existing syntax for sorting on a single criteria also still works.

Contributes to #6917
2014-09-08 15:20:33 +01:00
Adrien Grand 11fe940ea9 [TESTS] Add explicit mappings to IndexAliasesTests.testSearchingFilteringAliasesSingleIndex
This makes sure that all shards know about the `_uid` field.
2014-09-08 16:11:50 +02:00
Colin Goodheart-Smithe 12ca36574e [TEST] added debug info to GeoBoundsTests to try to solve build issue 2014-09-08 10:50:25 +01:00
Simon Willnauer aadbfa44b4 [SEARCH] Execute search reduce phase on the search threadpool
Reduce Phases can be expensive and some of them like the aggregations
reduce phase might even execute a one-off call via an internal client
that might cause a deadlock due to execution on the network thread
that is needed to handle the one-off call. This commit dispatches
the reduce phase to the search threadpool to ensure we don't wait
for the current thread to be available.

Closes #7623
2014-09-08 11:32:55 +02:00
mikemccand 130fdef367 Core: remove built-in support for Lucene's experimental codecs
Lucene's experimental codecs (from the codecs module) do not provide
backwards compatibility and are free to change from release to
release.  When they do change, they typically cannot in general read
older indices and the resulting exceptions look like index corruption.
So, we are removing built-in support for them to prevent applications
from choosing one and then seeing strange exceptions on upgrade.

Closes #7566

Closes #7604
2014-09-08 04:55:15 -04:00
Ryan Ernst 1a9c82d6b5 RestAPI: Change validation exceptions to respond with 400 status instead of 500.
Validation errors are clearly in the realm of client errors (a program
with the request).  Thus they should return a 4xx response code.

closes #7619
2014-09-06 22:02:32 -07:00
Simon Willnauer 36f9d39205 [TEST] Close input stream in test to not upset windows 2014-09-06 22:07:01 +02:00
uboness 333a39cf30 Extended ActionFilter to also enable filtering the response side
Enables filtering the actions on both sides - request and response. Also added a base class for filter implementations (cleans up filters that only need to filter one side)

Also refactored the filter & filter chain methods to more intuitive names
2014-09-06 13:18:40 +02:00
Ryan Ernst dd54025b17 Internal: Change LZFCompressedStreamOutput to use buffer recycler when allocating encoder
closes #7613
2014-09-05 13:59:10 -07:00
Ryan Ernst 669a7eb4f1 RestAPI: Add explicit error when PUT mapping API is given an empty request body.
closes #7536
closes #7618
2014-09-05 13:30:39 -07:00
Simon Willnauer 7f32e8c707 [STORE] Simplify reading / writing from and to BlobContainer
BlobContainer used to provide async APIs which are not used
internally. The implementation of these APIs are also not async
by nature and neither is any of the pluggable BlobContainers. This
commit simplifies the API to a simple input / output stream and
reduces the hierarchy of BlobContainer dramatically.
NOTE: This is a breaking change!

Closes #7551
2014-09-05 21:40:20 +02:00
Simon Willnauer 6a0a7afea6 [TEST] Allow SingleNodeTest to reset the node if really needed after test 2014-09-05 21:22:24 +02:00
Robert Muir 223dab8921 [Lucene] Upgrade to Lucene 4.10
Closes #7584
2014-09-05 12:21:08 -04:00
uboness 5df9c048fe Introduced a transient context to the rest request
Similar to the one in `TransportMessage`. Added the `ContextHolder` base class where both `TransportMessage` and `RestRequest` derive from

Now next to the known headers, the context is always copied over from the rest request to the transport request (when the injected client is used)
2014-09-05 16:54:46 +02:00
Alexander Reelsen 8b8cc80ba8 TransportClient: Mark transport client as such when instantiating
This allows plugins to load/inject specific classes, when the client started
is a transport client (compared to being a node client).

Closes #7552
2014-09-05 15:01:14 +02:00
Alex Ksikes 07d741c2cb Term Vectors: Support for artificial documents
This adds the ability to the Term Vector API to generate term vectors for
artifical documents, that is for documents not present in the index. Following
a similar syntax to the Percolator API, a new 'doc' parameter is used, instead
of '_id', that specifies the document of interest. The parameters '_index' and
'_type' determine the mapping and therefore analyzers to apply to each value
field.

Closes #7530
2014-09-05 07:42:43 +02:00
Adrien Grand b49853a619 Internal: Upgrade Guava to 18.0.
17.0 and earlier versions were affected by the following bug
https://code.google.com/p/guava-libraries/issues/detail?id=1761
which caused caches that are configured with weights that are greater than
32GB to actually be unbounded. This is now fixed.

Relates to #6268
Close #7593
2014-09-04 20:14:59 +02:00
javanna a857798e1c Indexed scripts: make sure headers are handed over to internal requests and streamline versioning support
The get, put and delete indexed script apis map to get, index and delete api and internally create those corresponding requests. We need to make sure that the original headers are handed over to the new request by passing the original request in the constructor when creating the new one.

Also streamlined the support for version and version_type in the REST layer since the parameters were not consistently parsed and set to the internal java API requests.

Modified the REST delete template and delete script actions to make use of a client instead of using the `ScriptService` directly.

Closes #7569
2014-09-04 16:00:32 +02:00
uboness 221eafab59 Refactored TransportMessage context
Removed CHM in favour of an OpenHashMap and synchronized accessor/mutator methods. Also, the context is now lazily inititialied (just like we do with the headers)
2014-09-04 15:11:28 +02:00
javanna 6633221470 Internal: deduplicate useful headers that get copied from REST to transport requests
The useful headers are now stored into a `Set` instead of an array so we can easily deduplicate them. A set is also returned instead of an array by the `usefulHeaders` static getter.

Relates to #6513

Closes #7590
2014-09-04 15:04:11 +02:00
Adrien Grand 4ca2dd0a0a Core: Remove DocSetCache.
This class was unused.

Close #7582
2014-09-04 11:03:16 +02:00
Colin Goodheart-Smithe 228778ceed Aggregations: Fixes resize bug in Geo bounds Aggregator
Closes #7556
2014-09-03 15:14:07 +01:00
javanna 5b5f4add1e [TEST] added test to verify GetIndexedScriptRequest serialization after recent changes 2014-09-03 15:16:13 +02:00
javanna 5ac77f79c2 [TEST] replaced assert with actual assertions in TemplateQueryTest 2014-09-03 15:16:13 +02:00
Britta Weber 59ecfd67e8 _boost: Fix "index" setting
Serialization if "index" setting for boost did not work since
the serialization was just true/false instead of valid options
"no"/"not_analyzed"/"analyzed".

closes #7557
2014-09-03 14:25:18 +02:00
javanna 4dab138db7 [TEST] resolved warning in IndexedScriptTests 2014-09-03 14:05:24 +02:00
javanna 19418749e4 Java api: change base class for GetIndexedScriptRequest and improve its javadocs
`GetIndexedScriptRequest` now extends `ActionRequest` instead of `SingleShardOperationRequest`, as the index field that was provided with the previous base class is not needed (hardcoded).

Closes #7553
2014-09-03 12:33:37 +02:00
javanna 851cb3ae8a Internal: fix members visibility, remove unused constant and needless try catch in indexed scripts transport actions 2014-09-03 11:57:10 +02:00
javanna 151b1c47d4 Java api: remove needless copy constructor from DeleteIndexedScriptRequest 2014-09-03 11:57:10 +02:00
javanna 4364b59846 Internal: remove unused constructor and adjust methods visibility in DelegatingActionListener 2014-09-03 11:57:10 +02:00
Renaud AUBIN 4c21db0dca Packaging: Add default oracle jdk 7 (x64) path in debian init script
On Debian amd64, oracle jdk .deb packages made using make-jpkg (from
java-package) default to /usr/lib/jvm/jdk-7-oracle-x64.

Closes #7312
2014-09-03 10:15:35 +02:00
Adrien Grand 4bfad644b3 Aggregations: Forbid usage of aggregations in conjunction with search_type=SCAN.
Aggregations are collection-wide statistics, which is incompatible with the
collection mode of search_type=SCAN since it doesn't collect all matches on
calls to the search API.

Close #7429
2014-09-03 09:03:01 +02:00
Adrien Grand 203e80e650 Aggregations: Only return aggregations on the first page when scrolling.
Aggregations are collection-wide statistics so they would always be the same.
In order to save CPU/bandwidth, we can just return them on the first page.

Same as #1642 but for aggregations.
2014-09-03 09:03:01 +02:00
Boaz Leskes 1f8db672fc [Internal] Do not use a background thread to disconnect node which are remove from the ClusterState
After a node fails to respond to a ping correctly (master or node fault detection), they are removed from the cluster state through an UpdateTask. When a node is removed, a background task is scheduled using the generic threadpool to actually disconnect the node. However, in the case of temporary node failures (for example) it may be that the node was re-added by the time the task get executed, causing an untimely disconnect call. Disconnect is cheep and should be done during the UpdateTask.

Closes #7543
2014-09-03 08:49:09 +02:00
Robert Muir 395744b0d2 [Analysis] Add missing docs for latvian analysis 2014-09-02 19:22:59 -04:00
Boaz Leskes 8d3dd61b21 typo s/removeDistruptionSchemeFromNode/removeDisruptionSchemeFromNode 2014-09-02 22:00:44 +02:00
Robert Muir 1711041c57 [Engine] Verify checksums on merge
Enable lucene verification of checksums on segments before merging them.
This prevents corruption from existing segments from silently slipping into
newer merged segments.

Closes #7360
2014-09-02 12:18:19 -04:00
Simon Willnauer b00424aba7 [TEST] Use a large threshold to prevent relocations in RecoveryBackwardsCompatibilityTests 2014-09-02 16:50:19 +02:00
Simon Willnauer cb206c94ec [TEST] Add simple test to test RT Lucene IW settings 2014-09-02 16:33:40 +02:00
Boaz Leskes 89f8f6c51e [Tests] ExternalCluster change error message when use local network mode due to wrong system properties 2014-09-02 15:37:07 +02:00
Boaz Leskes 024df242dc [Tests] add proper error message when BWC client creation fail due to node.local=true system property
System properties are typically set via the command line and therefore override the node settings. If one has `node.local=true` or `node.mode=local` it can result in cryptic error messages during the test run.
2014-09-02 15:37:07 +02:00
mikemccand 9c1ac95ba8 Use Flake IDs instead of random UUIDs when auto-generating id field
Flake IDs give better lookup performance in Lucene since they share
predictable prefixes (timestamp).

Closes #7531

Closes #6004

Closes #5941
2014-09-02 09:13:51 -04:00
Boaz Leskes 20dcb0e08a [Tests] add proper error message when BWC test fail due to node.local=true system property
System properties are typically set via the command line and therefore override the node settings. If one has `node.local=true` or `node.mode=local` it can result in cryptic error messages during the test run.
2014-09-02 14:49:46 +02:00
Boaz Leskes 5d7d86323d [Test] RecoveryBackwardsCompatibilityTests.testReusePeerRecovery used `gateway.recover_after_nodes:3` but may start only a 2 node cluster 2014-09-02 13:38:49 +02:00
Cristiano Fontes df5d22c7d7 Internal: Removing unused methods/parameters.
Close #7474
2014-09-02 09:38:51 +02:00
Boaz Leskes 884a744143 [Test] change the default port base for ClusterDiscoveryConfiguration.UnicastZen to 30000
The previous value of 10000 collided with the standard test cluster ports when 6 or more JVMs are used.
2014-09-01 21:40:52 +02:00
Boaz Leskes 246b2583a3 [Test] ElasticsearchIntegrationTest.clearDisruptionScheme should test if the current cluster is internal
When running on a non-internal cluster the function is a noop.
2014-09-01 21:14:30 +02:00
javanna 0d49a8ec76 [TEST] remove global scope mention from ElasticsearchIntegrationTest#buildTestCluster
The global cluster gets created from a static block and shared through all tests in the same jvm. The `buildTestCluster` method can't get called passing in `Scope.GLOBAL`, hence removed its mention from it as it might be misleading. The only two scopes supported within the `buildTestCluster` method are `SUITE` and `TEST`.
2014-09-01 18:34:32 +02:00
Boaz Leskes 598854dd72 [Discovery] accumulated improvements to ZenDiscovery
Merging the accumulated work from the feautre/improve_zen branch. Here are the highlights of the changes:

__Testing infra__
- Networking:
    - all symmetric partitioning
    - dropping packets
    - hard disconnects
    - Jepsen Tests
- Single node service disruptions:
    - Long GC / Halt
    - Slow cluster state updates
- Discovery settings
    - Easy to setup unicast with partial host list

__Zen Discovery__
- Pinging after master loss (no local elects)
- Fixes the split brain issue: #2488
- Batching join requests
- More resilient joining process (wait on a publish from master)

Closes #7493
2014-09-01 16:13:57 +02:00
Boaz Leskes 34f4ca763c [Cluster] Refactored ClusterStateUpdateTask protection against execution on a non master
Previous implementation used a marker interface and had no explicit failure call back for the case update task was run on a non master (i.e., the master stepped down after it was submitted). That lead to a couple of instance of checks.

This approach moves ClusterStateUpdateTask from an interface to an abstract class, which allows adding a flag to indicate whether it should only run on master nodes (defaults to true). It also adds an explicit onNoLongerMaster call back to allow different error handling for that case. This also removed the need for the  NoLongerMaster.

Closes #7511
2014-09-01 15:57:07 +02:00
Boaz Leskes 596a4a0735 [Internal] Extract a common base class for (Master|Nodes)FaultDetection
They share a lot of settings and some logic.

Closes #7512
2014-09-01 15:51:26 +02:00
Britta Weber 889db1c824 [TEST]: remove field_value_factor , was only added 1.2 2014-09-01 15:08:45 +02:00
Britta Weber 40d86a630b Tests: wait for yellow instead of green 2014-09-01 12:26:14 +02:00
javanna ab57d4a002 [TEST] Unify the randomization logic for number of shards and replicas
We currently have two ways to randomize the number of shards and replicas: random index template, that stays the same for all indices created under the same scope, and the overridable `indexSettings` method, called by `createIndex` and `prepareCreate` which returns different values each time.

Now that the `randomIndexTemplate` method is not static anymore, we can easily apply the same logic to both. Especially for number of replicas, we used to have slightly different behaviours, where more than one replicas were only rarely used through random index template, which gets now applied to the `indexSettings` method too (might speed up the tests a bit)

Side note: `randomIndexTemplate` had its own logic which didn't depend on `numberOfReplicas` or `maximumNumberOfReplicas`, which was causing bw comp tests failures since in some cases too many copies of the data are requested, which cannot be allocated to older nodes, and the write consistency quorum cannot be met, thus indexing times out.

Closes #7522
2014-09-01 12:04:24 +02:00
Britta Weber 3f0288fc59 fix typo in class name 2014-09-01 11:43:52 +02:00
Britta Weber c5ff70bf43 function_score: add optional weight parameter per function
Weights can be defined per function like this:

```
"function_score": {
    "functions": [
        {
            "filter": {},
            "FUNCTION": {},
            "weight": number
        }
        ...
```
If `weight` is given without `FUNCTION` then `weight` behaves like `boost_factor`.
This commit deprecates `boost_factor`.

The following is valid:

```
POST testidx/_search
{
  "query": {
    "function_score": {
      "weight": 2
    }
  }
}
POST testidx/_search
{
  "query": {
    "function_score": {
      "functions": [
        {
          "weight": 2
        },
        ...
      ]
    }
  }
}
POST testidx/_search
{
  "query": {
    "function_score": {
      "functions": [
        {
          "FUNCTION": {},
          "weight": 2
        },
        ...
      ]
    }
  }
}
POST testidx/_search
{
  "query": {
    "function_score": {
      "functions": [
        {
          "filter": {},
          "weight": 2
        },
        ...
      ]
    }
  }
}
POST testidx/_search
{
  "query": {
    "function_score": {
      "functions": [
        {
          "filter": {},
          "FUNCTION": {},
          "weight": 2
        },
        ...
      ]
    }
  }
}
```

The following is not valid:

```
POST testidx/_search
{
  "query": {
    "function_score": {
      "weight": 2,
      "FUNCTION(including boost_factor)": 2
    }
  }
}

POST testidx/_search
{
  "query": {
    "function_score": {
      "functions": [
        {
          "weight": 2,
          "boost_factor": 2
        }
      ]
    }
  }
}
````

closes #6955
closes #7137
2014-09-01 11:04:40 +02:00
Britta Weber 9750375412 mappings: keep parameters in mapping for _timestamp, _index and _size even if disabled
Settings that are not default for _size, _index and _timestamp were only build in
toXContent if these fields were actually enabled.
_timestamp, _index and _size can be dynamically enabled or disabled.
Therfore the settings must be kept, even if the field is disabled.
(Dynamic enabling/disabling was intended, see TimestampFieldMapper.merge(..)
and SizeMappingTests#testThatDisablingWorksWhenMerging
but actually never worked, see below).

To avoid that _timestamp is overwritten by a default mapping
this commit also adds a check to mapping merging if the type is already
in the mapping. In this case the default is not applied anymore.
(see
SimpleTimestampTests#testThatUpdatingMappingShouldNotRemoveTimestampConfiguration)

As a side effect, this fixes
- overwriting of paramters from the _source field by default mappings
  (see DefaultSourceMappingTests).
- dynamic enabling and disabling of _timestamp and _size ()
  (see SimpleTimestampTests#testThatTimestampCanBeSwitchedOnAndOff and
  SizeMappingIntegrationTests#testThatTimestampCanBeSwitchedOnAndOff )

Tests:

Enable UpdateMappingOnClusterTests#test_doc_valuesInvalidMappingOnUpdate again
The missing settings in the mapping for _timestamp, _index and _size caused a the
failure: When creating a mapping which has settings other than default and the
field disabled, still empty field mappings were built from the type mappers.
When creating such a mapping, the mapping source on master and the rest of the cluster
can be out of sync for some time:

1. Master creates the index with source _timestamp:{_store:true}
   mapper classes are in a correct state but source is _timestamp:{}
2. Nodes update mapping and refresh source which then completely misses _timestamp
3. After a while source is refreshed again also on master and the _timestamp:{}
   vanishes there also.

The test UpdateMappingOnCusterTests#test_doc_valuesInvalidMappingOnUpdate failed
because the cluster state was sampled from master between 1. and 3. because the
randomized testing injected a default mapping with disabled _size and _timestamp
fields that have settings which are not default.

The test
TimestampMappingTests#testThatDisablingFieldMapperDoesNotReturnAnyUselessInfo
must be removed because it actualy expected the timestamp to remove
parameters when it was disabled.

closes #7137
2014-09-01 10:39:33 +02:00
Boaz Leskes 0e6bb1f28b [Rest] Add the cluster name to the "/" endpoint
The root endpoint returns basic information about this node, like it's name and ES version etc. The cluster name is an important information that belongs in that list.

Closes #7524
2014-09-01 10:05:11 +02:00
Areek Zillur 9df10a07b0 Improved Suggest Client API:
- Added SuggestBuilders (analogous to QueryBuilders)
 - supporting term, phrase, completion and fuzzyCompletion suggestion builders
- Added suggest(SuggestionBuilder) to SuggestRequest
   - previously only suggest(BytesReference) was supported

closes #7435
2014-08-31 21:55:03 -04:00
Boaz Leskes 7fb9e5e28e [Test] make testNoMasterActions more resilient 2014-08-30 18:34:20 +02:00
Martijn van Groningen 2ba4e35cde Aggregations: The nested aggregator should iterate over the child doc ids in ascending order.
The reverse_nested aggregator requires that the emitted doc ids are always in ascending order, which is already enforced on the scorer level,
but this also needs to be enforced on the nested aggrgetor level otherwise incorrect counts are a result.

Closes #7505
Closes #7514
2014-08-29 23:04:17 +02:00
Boaz Leskes d8a5ff0047 [Internal] introduce ClusterState.UNKNOWN_VERSION constant
Used as null value for cluster state versions.
2014-08-29 22:57:23 +02:00
Boaz Leskes 75795e44c1 [Tests] add different node name prefix for the different cluster type
During a test run we have a global shared cluster and potentially a suite level or even a test level cluster running. All of those share the same node name pattern (node_#). This can be confusing if you're debugging discovery related tests where those nodes from the different clusters potentially interact (and reject each other). This commit gives each cluster type a unique prefix to make tracing and log filtering simpler.

Closes #7518
2014-08-29 21:33:54 +02:00
Simon Willnauer 4473cdc503 [TEST] Remove unused plugin isolation leftover 2014-08-29 21:29:48 +02:00
Simon Willnauer 0d07917e99 [TEST] Stabelize SimpleRecoveryLocalGatewayTests#testReusePeerRecovery 2014-08-29 21:29:01 +02:00
Lee Hinman 1e21f27874 [TEST] fix off-by-one error in BigArrays tests
Comparisons for the BigArrays breaker use "greater than" instead of
"greater than or equal", which was never an issue before because the
test size was not right on a page boundary. A test with an exactly
divisible page boundary (4mb exactly in this case) caused the sizes to
be equal to, but not exceed, the limit, and never break.

The limit should be smaller than the test increments the breaker anyway.
2014-08-29 17:17:03 +02:00
Boaz Leskes ed5b2e0e35 Add an assertion to ZenDiscovery checking that local node is never elected if pings indicate an active master 2014-08-29 17:07:24 +02:00