Commit Graph

4282 Commits

Author SHA1 Message Date
Isabel Drost-Fromm 5bff6e4218 Refactor FieldSortBuilder
* adds json parsing,
* refactors json serialisation,
* adds writable parsing and serialisation,
* adds json and writable roundtrip test
2016-03-14 14:02:22 +01:00
Christoph Büscher f0074668db Merge branch 'master' into sort-serialization-scriptsort 2016-03-14 12:15:53 +01:00
Christoph Büscher 97638c95fc Merge branch 'master' into feature-suggest-refactoring
Conflicts:
	docs/reference/migration/migrate_5_0.asciidoc
2016-03-14 11:13:47 +01:00
Simon Willnauer 31740e279f Resolve index names to Index instances early
Today index names are often resolved lazily, only when they are really
needed. This can be problematic especially when it gets to mapping updates
etc. when a node sends a mapping update to the master but while the request
is in-flight the index changes for whatever reason we would still apply the update
since we use the name of the index to identify the index in the clusterstate.
The problem is that index names can be reused which happens in practice and sometimes
even in a automated way rendering this problem as realistic.
In this change we resolve the index including it's UUID as early as possible in places
where changes to the clusterstate are possible. For instance mapping updates on a node use a
concrete index rather than it's name and the master will fail the mapping update iff
the index can't be found by it's <name, uuid> tuple.

Closes #17048
2016-03-14 11:08:48 +01:00
Adrien Grand 071b396306 Fix test bug: norms are on by default on _all. 2016-03-14 09:06:11 +01:00
Adrien Grand c50c5a52d5 Rework norms parameters for 5.0. #16987
Changes:
 - no more option to configure eager/lazy loading of the norms (useless now
   that orms are disk-based)
 - only the `string`, `text` and `keyword` fields support the `norms` setting
 - the `norms` setting takes a boolean that decides whether norms should be
   stored in the index but old options are still supported to give users time
   to upgrade
 - setting a `boost` no longer implicitely enables norms (for new indices only,
   this is still needed for old indices)
2016-03-14 08:42:35 +01:00
Adrien Grand 5596e31068 Upgrade to lucene-6.0.0-f0aa4fc. #17075 2016-03-14 07:58:52 +01:00
Jason Tedor 8a05c2a2be Bootstrap does not set system properties
Today, certain bootstrap properties are set and read via system
properties. This action-at-distance way of managing these properties is
rather confusing, and completely unnecessary. But another problem exists
with setting these as system properties. Namely, these system properties
are interpreted as Elasticsearch settings, not all of which are
registered. This leads to Elasticsearch failing to startup if any of
these special properties are set. Instead, these properties should be
kept as local as possible, and passed around as method parameters where
needed. This eliminates the action-at-distance way of handling these
properties, and eliminates the need to register these non-setting
properties. This commit does exactly that.

Additionally, today we use the "-D" command line flag to set the
properties, but this is confusing because "-D" is a special flag to the
JVM for setting system properties. This creates confusion because some
"-D" properties should be passed via arguments to the JVM (so via
ES_JAVA_OPTS), and some should be passed as arguments to
Elasticsearch. This commit changes the "-D" flag for Elasticsearch
settings to "-E".
2016-03-13 20:09:15 -04:00
Boaz Leskes e472d7894b Log suppressed stack traces under DEBUG
To make API's output more easy to read we are suppressing stack traces (#12991) unless explicitly requested by setting `error_trace=true` on the request. To compensate we are logging the stacktrace into the logs so people can look it up even the error_trace wasn't enabled. Currently we do so using the `INFO` level which can be verbose if an api is called repeatedly by some automation.  For example, if someone tries to read from an index that doesn't exist we will respond with a 404 exception and log under info every time. We should reduce the level to `DEBUG` as we do with other API driven errors. Internal errors (rest codes >=500) are logged as WARN.

Closes #16627
2016-03-13 21:50:17 +01:00
David Pilato 25531b7299 Update after last review
We check for null. Test added as well.
2016-03-13 15:36:17 +01:00
David Pilato e9e1e25998 Fix after merge with master 2016-03-13 15:14:07 +01:00
David Pilato 9acb0bb28c Merge branch 'master' into pr/16598-register-filter-settings
# Conflicts:
#	core/src/main/java/org/elasticsearch/cluster/service/InternalClusterService.java
#	core/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java
#	core/src/main/java/org/elasticsearch/common/settings/Setting.java
2016-03-13 14:52:10 +01:00
Yannick Welsch 625695a92a [TEST] MockRepository should also unblock repositories that are not blocked yet 2016-03-13 14:12:29 +01:00
Simon Willnauer 121e7c8ca4 Add infrastructure to run REST tests on a multi-version cluster
This change adds the infrastructure to run the rest tests on a multi-node
cluster that users 2 different minor versions of elasticsearch. It doesn't implement
any dedicated BWC tests but rather leverages the existing REST tests.

Since we don't have a real version to test against, the tests uses the current version
until the first minor / RC is released to ensure the infrastructure works.

Relates to #14406
Closes #17072
2016-03-13 10:52:39 +01:00
Ryan Ernst 8b26c260d1 Plugins: Enforce plugin zip does not contain zip entries outside of the unzip dir
When unzipping a plugin zip, the zip entries are resolved relative to
the directory being unzipped into. However, there are currently no
checks that the entry name was not absolute, or relatively points
outside of the plugin dir. This change adds a check for those two cases.
2016-03-11 14:53:14 -08:00
Areek Zillur 4b803d75cf nuke SuggestParseElement 2016-03-11 16:27:33 -05:00
Ryan Ernst 5f3d0067f8 Merge pull request #17024 from rjernst/cli-parsing
Cli: Switch to jopt-simple
2016-03-11 12:35:39 -08:00
Areek Zillur 97e2bab4cd clarify parsing logic in SuggestBuilder 2016-03-11 15:06:42 -05:00
Areek Zillur c9f30f2f3f scope internal methods in suggest builders 2016-03-11 15:06:36 -05:00
Ryan Ernst 5bd7da5659 Addressed PR feedback
* Fix tests still referring to -E
* add comment about missing classes
* rename writer constant
2016-03-11 11:46:23 -08:00
Yannick Welsch afb54bab44 [TEST] Wait on all data nodes to be blocked if blocks active
Fixes race condition in MockRepository where unblock happens before block
2016-03-11 20:20:07 +01:00
Ryan Ernst 591fb8f028 Merge branch 'master' into cli-parsing 2016-03-11 10:45:05 -08:00
Ali Beyad 31dcb3e18b Merge pull request #16873 from abeyad/suggester-wiring-refactoring
Change internal representation of suggesters
2016-03-11 12:34:35 -05:00
Christoph Büscher 5107388fe9 Added enum for script sort type 2016-03-11 17:32:39 +01:00
Christoph Büscher 8ab4d001e2 Make ScriptSortBuilder implement NamedWritable
This adds methods and tests to ScriptSortBuilder that
makes it implement NamedWritable and adds the fromXContent
method needed to read itseld from xContent.
2016-03-11 16:57:22 +01:00
Yannick Welsch 422df6089c [TEST] Unblock nodes if snapshot/restore test fails 2016-03-11 16:38:52 +01:00
Christoph Büscher 7aa29e3f7c Make Copy of collate parameter map
Test failures showed problems with passing down
the same collate parameter map reference from the
phrase suggestion builder to the context where.
This changes the collate parameter setters to
make a shallow copy of the map passed in.
2016-03-11 15:20:52 +01:00
Jason Tedor f465d98eb3 Add raw recovery progress to cat recovery API
This commit adds fields bytes_recovered and files_recovered to the cat
recovery API. These fields, respectively, indicate the total number of
bytes and files recovered. Additionally, for consistency, some totals
fields and translog recovery fields have been renamed.

Closes #17064
2016-03-11 08:27:09 -05:00
Christoph Büscher daeffb149c Merge branch 'master' into feature-suggest-refactoring 2016-03-11 10:37:28 +01:00
Yannick Welsch 04e55ecf6b Make logging message String constant to allow static checks 2016-03-11 10:30:59 +01:00
Yannick Welsch 718876a941 Fix wrong placeholder usage in logging statements 2016-03-11 10:30:59 +01:00
Yannick Welsch b17f4b40ba Check that number of placeholders in log message matches number of parameters 2016-03-11 10:30:59 +01:00
Adrien Grand a46d2f21c6 Fix dynamic mapper bug with deeply nested fields. 2016-03-11 09:59:38 +01:00
Ryan Ernst efd59f531d Merge pull request #17065 from rjernst/dynamic_mappers_are_hard
Fix dynamic mapper when its parent already has an update
2016-03-11 00:29:31 -08:00
Adrien Grand cb2ed50aeb Remove friction from the mapping changes in 5.0. #16991
This tries to remove friction to upgrade to 5.0 that would be caused by mapping
changes:
 - old ways to specify mapping settings (eg. store: yes instead of store:true)
   will still work but a deprecation warning will be logged
 - string mappings that only use the most common options will be upgraded
   automatically to text/keyword
2016-03-11 09:23:49 +01:00
Yannick Welsch 64e84dcc76 Reuse shard model across 3 phases in BalancedShardsAllocator 2016-03-11 08:42:25 +01:00
Yannick Welsch f6ae9ec4f6 Remove ShardsAllocators and merge allocateUnassigned, moveShards and rebalance to improve performance 2016-03-11 08:42:25 +01:00
Ryan Ernst 96ec48afcd Fix dynamic mapper when its parent already has an update
The change to move dynamic mapping handling to the end of document
parsing has an edge case which can cause dynamic mappings to fail
document parsing. If field a.b is added as an as part of the root update,
followed by a.c.d, then we need to expand the mappers on the stack,
since a is hidden inside the root update which exists on the stack.

This change adds a test for this case, as well as tries to better
document how the logic works for building up the stack before adding a
dynamic mapper.
2016-03-10 18:00:07 -08:00
Ryan Ernst 42a6869bb1 Merge pull request #17059 from elastic/fix/16864-attachment-doctypes
Fix attachments plugins with docx
2016-03-10 17:27:02 -08:00
Ryan Ernst 2f3efc3fe1 Add doc and docx rest test to mapper attachment along with
getClassLoader permission
2016-03-10 13:28:19 -08:00
Zachary Tong 9d340e6b08 Fix import formatting - do not use wildcard 2016-03-10 16:08:18 -05:00
Zachary Tong ae36262a95 Merge pull request #14745 from polyfractal/bugfix/deriv_npe
Fix NPE in Derivative Pipeline when current bucket value is null
2016-03-10 15:34:31 -05:00
Zachary Tong 39a067aa3f Fix NPE in Derivative Pipeline when current bucket is null
Sequence of events that lead to the NPE:

- avg metric returns NaN for buckets
- Movavg skips NaN or null buckets, and simply re-uses the existing bucket (e.g. doesn't add
a 'movavg' field)
- Derivative references Movavg, the bucket resolution returns null because Movavg wasn't added
to the bucket, NPE when trying to subtract null values
2016-03-10 15:17:26 -05:00
Ryan Ernst f3195cb514 Merge pull request #16798 from rjernst/dots2
Moved dynamic field handling in doc parsing to end of parsing
2016-03-10 10:03:52 -08:00
Ryan Ernst ac73d97169 Merge branch 'master' into dots2 2016-03-10 09:22:31 -08:00
Yannick Welsch 266394c3ab Fail closing or deleting indices during a full snapshot
Closes #16321
2016-03-10 18:11:47 +01:00
Ali Beyad 5a8d40e44a Fixes CompletionSuggesterBuilderTests to test for the correct expected
error message.
2016-03-10 10:39:46 -05:00
Ali Beyad 807d085218 Merge remote-tracking branch 'upstream/feature-suggest-refactoring' into suggester-wiring-refactoring 2016-03-10 09:56:08 -05:00
Martijn van Groningen 2fa33d5c47 Added ingest statistics to node stats API
The ingest stats include the following statistics:
* `ingest.total.count`- The total number of document ingested during the lifetime of this node
* `ingest.total.time_in_millis` - The total time spent on ingest preprocessing documents during the lifetime of this node
* `ingest.total.current` - The total number of documents currently being ingested.
* `ingest.total.failed` - The total number ingest preprocessing operations failed during the lifetime of this node

Also these stats are returned on a per pipeline basis.
2016-03-10 13:21:43 +01:00
Boaz Leskes cd12241e9f Decouple the TransportService and ClusterService #16872
Currently, the cluster service is tightly coupled to the transport service by both managing node connections and requiring the bound address in order to create the local disco node. This commit introduces a new NodeConnectionsService which is in charge of node connection management and makes it possible to remove all network related calls from the cluster service. The local DiscoNode is now created by DiscoveryNodeService and is set both the cluster service and the transport service during node start up.

Closes #16788
Closes #16872
2016-03-10 11:45:15 +01:00
Christoph Büscher 69c83b3459 Merge branch 'master' into feature-suggest-refactoring
Conflicts:
	core/src/main/java/org/elasticsearch/action/suggest/TransportSuggestAction.java
        core/src/main/java/org/elasticsearch/search/suggest/SuggestParseElement.java
	core/src/main/java/org/elasticsearch/search/suggest/SuggestionSearchContext.java
	core/src/main/java/org/elasticsearch/search/suggest/phrase/PhraseSuggester.java
2016-03-10 11:44:36 +01:00
Christoph Büscher b4db26eaf9 Sort: Move up `order` field to SortBuilder
Currently all SortBuilder implementations have their separate order
field. This PR moves this up to SortBuilder, together with setter
and getter and makes sure the default is set to SortOrder.ASC
except for `_score` sorting where the default is SortOrder.DESC.
2016-03-10 10:47:34 +01:00
Isabel Drost-Fromm 7621c8875f Merge pull request #16999 from MaineC/sort-parser-simplification
Moves SortParser:parse(...) to only require QueryShardContext
2016-03-10 10:21:02 +01:00
Ali Beyad a6662d78df Improves the organization of the suggestion builder tests 2016-03-10 00:14:27 -05:00
Ali Beyad 06487b0ac5 Change internal representation of suggesters to instances of
SuggestBuilder instead of raw bytes.
2016-03-10 00:12:39 -05:00
Nik Everett 7d35db6cc7 Merge fix for expressions starting with * 2016-03-09 18:27:40 -05:00
Ryan Ernst 1bc8d0249f Merge pull request #16286 from fforbeck/fix/15269
Skipping hidden files compilation for script service
2016-03-09 14:45:24 -08:00
Nicholas Knize 61f39e6c92 GeoPointV2 update docs and query builders
This commit updates the documentation for GeoPointField by removing all references to the coerce and doc_values parameters. DocValues are enabled in lucene GeoPointField by default (required for boundary filtering). The QueryBuilders are updated to automatically normalize points (ignoring the coerce parameter) for any index created onOrAfter version 2.2.
2016-03-09 16:09:44 -06:00
Ryan Ernst 0344af0750 Remove unnecessary comment 2016-03-09 13:26:33 -08:00
Ryan Ernst c48e6b86f6 Limit update to fields and objects which were actually modified, and
simplify root update creation.
2016-03-09 13:24:46 -08:00
Jason Tedor 12a6f36a34 Log shard after translog snapshot during recovery 2016-03-09 15:15:58 -05:00
Ryan Ernst bbdbfe7373 Merge branch 'master' into dots2 2016-03-09 11:28:27 -08:00
Simon Willnauer 016bc3ea2b Merge pull request #17001 from s1monw/cut_over_to_uuid
Use index UUID to lookup indices on IndicesService

Today we use the index name to lookup index instances on the IndicesService
which applied to search requests but also to index deletion etc. This commit
moves the interface to expect an Index instance which is a tuple
and looks up the index by uuid rather than by name. This prevents accidental modification
of the wrong index if and index is recreated or searching from the wrong index in such a case.
Accessing an index that has the same name but different UUID will now result in an IndexNotFoundException.
2016-03-09 19:44:36 +01:00
Simon Willnauer e72dac91b3 Use index UUID to lookup indices on IndicesService
Today we use the index name to lookup index instances on the IndicesService
which applied to search reqeusts but also to index deletion etc. This commit
moves the interface to expcet and `Index` instance which is a <name, uuid> tuple
and looks up the index by uuid rather than by name. This prevents accidential modificaiton
of the wrong index if and index is recreated or searching from the _wrong_ index in such a case.
Accessing an index that has the same name but different UUID will now result in an IndexNotFoundException.

Closes #17001
2016-03-09 19:42:15 +01:00
Areek Zillur e7cffa5e9f simplify mocking field type in SuggestionBuilderTests 2016-03-09 11:53:44 -05:00
Areek Zillur 55c58c56a8 incorporate feedback 2016-03-09 11:53:34 -05:00
Areek Zillur 987f2f5aa8 cleanup 2016-03-09 11:53:13 -05:00
Areek Zillur 5bb72dbcd2 construct suggestion context from query context 2016-03-09 11:52:59 -05:00
Alexander Kazakov 2ce90c001c Don't return all indices immediately if count of expressions >1 and first expression is * #17027 2016-03-09 19:43:56 +03:00
Nicholas Knize d09ee3f174 Remove .geohash suffix from GeoDistanceQuery and GeoDistanceRangeQuery
Occasionally the .geohash suffix in Geo{Distance|DistanceRange}Query would conflict with a mapping that defines a sub-field by the same name. This occurs often with nested and multi-fields a mapping defines a geo_point sub-field using the field name "geohash". Since the QueryParser already handles parsing geohash encoded geopoints without requiring the ".geohash" suffix, the suffix parsing can be removed altogether.

This commit removes the .geohash suffix parsing, adds explicit test coverage for the nested query use-case, and adds random distance queries to the nested query test suite.
2016-03-09 09:35:27 -06:00
Ali Beyad e411cbb060 Fixes the DiscoveryWithServiceDisruptionsIT#testIndicesDeleted test
In particular, this test ensures we don't restart the master node until
we know the index deletion has taken effect on master and the master
eligible nodes.

Closes #16917
Closes #16890
2016-03-09 10:28:12 -05:00
Christoph Büscher 11b18a9963 Sort: Make ScoreSortBuilder implement NamedWriteable and add fromXContent parsing
This change makes ScoreSortBuilder implement NamedWriteable, adds
equals() and hashCode() and also implements parsing ScoreSortBuilder
back from xContent. This is needed for the ongoing Search refactoring.
2016-03-09 14:42:06 +01:00
Simon Willnauer f8ab6a6669 [TEST] Make boost more prominent in test since with new default similarity it might score lower without the boost 2016-03-09 11:43:38 +01:00
Martijn van Groningen b9b5c15fe1 test: ensure the each node sees 2 nodes. 2016-03-09 11:39:35 +01:00
Simon Willnauer 5fca3b6126 Merge pull request #16985 from elastic/remove_leniency_in_commitpoint_checks
Remove leniency from segments info integrity checks

Closes #16973
2016-03-09 11:25:42 +01:00
Isabel Drost-Fromm 7b5b0d4511 Move missing() from SortBuilder interface to class
As mentioned by @cbuescher on #16151 this method is really implemented only in
the FieldSortBuilder. Moving the method down.

Relates to #15178
2016-03-09 10:18:31 +01:00
Simon Willnauer 716e7267f3 Remove unused test-only constructor from IndexingSlowLog 2016-03-09 10:10:38 +01:00
Simon Willnauer 997fccde09 Remove unused delete logger in IndexingSlowLog
The delete logger is a leftover and has no usage in this class.
2016-03-09 10:10:38 +01:00
Ryan Ernst dedc45ea62 Fix tribe integ test to not try to pass through path settings 2016-03-09 01:03:27 -08:00
Simon Willnauer 91308d74c6 Merge pull request #17026 from s1monw/issues/17025
Add missing index name to indexing slow log
2016-03-09 09:49:06 +01:00
Simon Willnauer 98249507cf Add missing index name to indexing slow log
This was lost in refactoring even on the 2.x branch. The slow-log
is not per index not per shard anymore such that we don't add the
shard ID as the logger prefix. This commit adds back the index
name as part of the logging message not as a prefix on the logger
for better testabilitly.

Closes #17025
2016-03-09 09:38:46 +01:00
Ryan Ernst 712043315d Use Setting objects for tribe node client passthrough, and add scripts
path to passthrough
2016-03-09 00:37:15 -08:00
Ryan Ernst b419a50381 Merge branch 'master' into more_tribe_node_settings 2016-03-09 00:19:43 -08:00
Ryan Ernst 80ae2b0002 Fix more licenses 2016-03-09 00:10:59 -08:00
Ryan Ernst d822c6558f Fix file rename to match class name 2016-03-08 23:17:35 -08:00
Ryan Ernst 1dafead2eb Fix precommit 2016-03-08 22:55:24 -08:00
Ryan Ernst 6cfdf9f440 Remove old commons-cli dep 2016-03-08 17:29:31 -08:00
Ryan Ernst 73ebe36ed0 More tests 2016-03-08 17:27:53 -08:00
Ryan Ernst fdce9d7c4d Merge branch 'master' into cli-parsing 2016-03-08 14:18:20 -08:00
Ryan Ernst 13424318db Remove old help files 2016-03-08 14:16:39 -08:00
Ryan Ernst 80198accc1 Removed old cli stuff, and add tests for new Command behavior 2016-03-08 14:13:55 -08:00
Ryan Ernst 3836f3a736 Remove reference to standalonerunner 2016-03-08 13:40:39 -08:00
Ryan Ernst e5c852f767 Convert bootstrapcli parser to jopt-simple 2016-03-08 13:39:37 -08:00
Nicholas Knize 496f50bfc3 Deprecate lat_lon and precision_step
With GeoPoinV2 lat_lon and precision_step parameters will be removed in 5.0. This PR adds deprecation logging for 2.x.
2016-03-08 14:45:54 -06:00
Nik Everett e32716b26f [test] Fix uncommon tests failure in TasksIT 2016-03-08 12:09:05 -05:00
Nik Everett 0745e19c29 Add uuid to Index's toString
This is useful because uuid is starting to matter more and more in index
operations.
2016-03-08 11:56:45 -05:00
Nik Everett 6d0efae713 Teach list tasks api to wait for tasks to finish
_wait_for_completion defaults to false. If set to true then the API will
wait for all the tasks that it finds to stop running before returning. You
can use the timeout parameter to prevent it from waiting forever. If you
don't set a timeout parameter it'll default to 30 seconds.

Also adds a log message to rest tests if any tasks overrun the test. This
is just a log (instead of failing the test) because lots of tasks are run
by the cluster on its own and they shouldn't cause the test to fail. Things
like fetching disk usage from the other nodes, for example.

Switches the request to getter/setter style methods as we're going that
way in the Elasticsearch code base. Reindex is all getter/setter style.

Closes #16906
2016-03-08 11:53:57 -05:00
Lee Hinman 678bc927ce Log when cancelling allocation of a replica because a new syncid was found
Currently the message stays in the `UnassignedInfo` for the shard,
however, it would be very useful to know the exact point (time-wise)
that the cancellation happened when diagnosing an issue.

Relates to debugging #16357
2016-03-08 09:12:04 -07:00
Simon Willnauer 9a9eadd743 [TEST] Use actual target directory to fsync copied files in test
Apparently lucene6 is way more picky with respect to corrupting files
that are not fsynced that's why this test sometimes failed after the lucene6
upgrade.
2016-03-08 15:30:57 +01:00
Simon Willnauer 4603313c75 Merge remote-tracking branch 'origin/master' 2016-03-08 15:29:47 +01:00