Commit Graph

2449 Commits

Author SHA1 Message Date
Alexander Reelsen 6a856c86e8 Cat API: Add endpoint to show aliases
This endpoint allows to check aliases, their indices, if a filter is
configured along with routing values for searching and indexing.

Closes #4414
2013-12-16 10:37:06 +01:00
Igor Motov d8ba92cfa8 Resolve potential deadlock state during EsThreadPoolExecutor shutdown
Fixes #4334

The deadlock occurs between monitor object of EsThreadPoolExecutor and mainLock of ThreadPoolExecutor. The shutdown method of EsThreadPoolExecutor obtains the lock on monitor first and waits for mainLock of ThreadPoolExecutor in ThreadPoolExecutor#shutdown for part of the processing, while EsThreadPoolExecutor#terminated is executed under mainLock and tries to obtain monitor to notify listeners.
2013-12-14 21:45:03 -05:00
Shay Banon 80ab75e54e upgrade to latest jsr166 2013-12-14 01:27:18 +01:00
Luca Cavanna 9b121baafc More common AcknowledgedRestResponseActionListener
Introduced use of AcknowledgedRestResponseActionListener in put/delete index template
2013-12-13 19:39:46 +01:00
Adrien Grand 36bd9cc432 Aggregations: Ordinals-based string bucketing support.
When the ValuesSource has ordinals, terms ordinals are used as a cache key to
bucket ordinals. This can make terms aggregations on String terms significantly
faster.

Close #4350
2013-12-13 15:34:02 +01:00
Martijn van Groningen 10e2528cce Added the `force_source` option to highlighting that enforces to use of the _source even if there are stored fields.
The percolator uses this option to deal with the fact that the MemoryIndex doesn't support stored fields,
this is possible b/c the _source of the document being percolated is always present.

Closes #4348
2013-12-13 13:39:53 +01:00
Simon Willnauer 59e4e58683 Add trace logging to AllocationDeciders if decision is NO() 2013-12-13 12:08:26 +01:00
Sebastian Geidies 6ed126deaf Skipping execution of remaining Deciders if one of them returns a Decision.NO.
Reordering execution of the different AllocationDeciders, so the cheapest get executed first.
2013-12-13 11:52:48 +01:00
Boaz Leskes 2acccf257d Add `queries` to XContent output of PercolateStats
The queries stats tracked but not exposed to the Rest API

Closes #4440
2013-12-13 11:36:51 +01:00
Boaz Leskes b65d07b495 A failure during the response construction could cause a Node Operation never to return 2013-12-13 10:36:39 +01:00
Shay Banon 976bdd6a26 randomize transport tcp compression on nodes 2013-12-12 23:19:59 +01:00
Shay Banon 0469cca4be properly support global transport compression with new bytes transport request optimization 2013-12-12 22:29:54 +01:00
Shay Banon 0f4d81fcd4 refresh the mapping source directly into a compressed buffer
instead of building the mapping source, and then compressing it, we can generate it directly into a compressed buffer
2013-12-12 20:58:11 +01:00
Lee Hinman 77fcf71338 Add new `simple_query_string` query type
This adds support for Lucene's SimpleQueryParser by adding a new type
of query called the `simple_query_string`. The `simple_query_string`
query is designed to be able to parse human-entered queries without
throwing any exceptions.

Resolves #4159
2013-12-12 12:09:32 -07:00
Adrien Grand e2e19203d7 Remove IndexFieldData.getHighestNumberOfSeenUniqueValues().
Closes #4426
2013-12-12 15:44:05 +01:00
Adrien Grand 0554f8e875 Add missing mappers to MapperBuilders.
- completion
 - geo_point
 - geo_shape
 - parent
 - size
 - ttl

Close #4423
2013-12-12 09:44:55 +01:00
Martijn van Groningen b4d1d899d2 Replaced the synchronization method for enabling the realtime percolator from synchronized methods to use AtomicBoolean#compareAndSet instead.
Remove @TestLogging from percolator tests.
2013-12-11 22:54:35 +01:00
Luca Cavanna 2cbecd9cb3 Made sure that we never throw IndexMissingException in indices query and filter
It could happen although we internally use IgnoreIndices.MISSING, due to MetaData#concreteIndices contract, which throws IndexMissingException anyway if all requested indices are missing.
In case all the indices specified in the query/filter are missing, we just execute the no_match query/filter, no need to throw any error.

Closes #3428
2013-12-11 22:26:46 +01:00
Luca Cavanna 24434063b6 Introduced ok & acknowledged constant in AcknowledgedRestResponseActionListener 2013-12-11 21:28:54 +01:00
Luca Cavanna b1fa147968 More common AcknowledgedRestResponseActionListener
Introduced use of AcknowledgedRestResponseActionListener in put/delete alias & delete index
2013-12-11 21:28:15 +01:00
Luca Cavanna 037bf6a85f Unified default ack timeout to 30 seconds
Increased also default publish state timeout to 30 seconds (from 5 seconds) and introduced constant for it.
Introduced AcknowledgedRequest.DEFAULT_ACK_TIMEOUT constant.
Removed misleading default values coming from the REST layer.
Removed (in a bw compatible manner) the timeout support in put/delete index template as the timeout parameter was ignored.

Closes #4395
2013-12-11 20:54:27 +01:00
Martijn van Groningen f9ff733eb8 Renamed the methods in DocumentListenerType to actually reflect when these are invoked. 2013-12-11 17:51:09 +01:00
Martijn van Groningen 92c32dca9e Invoke the DocumentType listeners *before* the mappers are updated. This fixes an issue where if two or more concurrent percolate index requests are processed, the first request would the `.percolator` type mapping, but the real time percolator listener wouldn't be active, this would result in that the subsequent concurrent requests wouldn't be parsed and kept in memory and would never be included in any percolate api result. This issue any occurred when `.percolator` type is created on the fly.
Also made the call to PercolatorQueriesRegistry#enableRealTimePercolator and #disableRealTimePercolator synchronized, so that for the same shard the RealTimePercolatorOperationListener can't registered twice.
2013-12-11 17:41:10 +01:00
Shay Banon a3f1c428c2 bulk response has errors indication + status per item
closes #4002
2013-12-11 16:04:41 +01:00
Shay Banon 10cdb0ae22 Batch processing mapping updates can cause missed merged mappings when batching multiple types
when we bulk changes, we need to use the same index metadata builder across the tasks, otherwise we might remove mappings erroneously
 also, when we check if we can use a higher order mapping, we need to verify that its for the same mapping type
2013-12-11 14:34:59 +01:00
Martijn van Groningen a760f1f54a Make listeners a final field in ShardIndexingService, which fixed possible visibility issue. 2013-12-11 12:22:45 +01:00
Shay Banon aee388ec46 introduce an internal metadata uuid 2013-12-11 10:49:36 +01:00
Florian Schilling 937a4e9d9d SloppyMath
Added copy of SloppyMath.java from lucene 4.6+
and setup GeoDistance for new haversin method

closes #3862
2013-12-11 17:51:32 +09:00
Boaz Leskes 99b421925f Add wildcard support to field resolving in the Get Field Mapping API
Closes #4367
2013-12-10 23:46:37 +01:00
Shay Banon a9e259d438 Introduce BytesTransportRequest, allowing for downstream network optimization in buffers usage
When sending a request, mainly to multiple nodes, if we already have the "body" of the request in bytes, we can share it instead of copying it over to a new buffer. Also, it helps a lot when sending a relatively large body to multiple nodes, since it will use the same body buffer across all nodes
2013-12-10 22:49:31 +01:00
Alexander Reelsen c4f3da2b9d Preference only_node with unknown nodeId returns useful exception
When the search preference is set to only node, but this node is not a
data (or does not exist), we return a search exception, which indicates,
that this is actually a server problem.

However specifying a non-existing node id is a client problem
and should return a more useful error message than
{"error":"SearchPhaseExecutionException[Failed to execute phase [query_fetch], all shards failed]","status":503}
2013-12-10 20:15:14 +01:00
Martijn van Groningen 7d3b78c293 moved log statements 2013-12-10 19:54:27 +01:00
Richard Boulton 1037d071bf Fix bug in explain for function_score queries.
The explain output for function_score queries with score_mode=max or
score_mode=min was incorrect, returning instead the value of the last
function.  This change fixes this.
2013-12-10 17:59:00 +01:00
Simon Willnauer 6c189310b9 Remove 'term_index_interval' and 'term_index_divisor'
These settings are no longer relevant since they are codec /
postingsformat level settings since Lucene 4.0

Closes #3912
2013-12-10 16:54:08 +01:00
Martijn van Groningen 38cff53a0f Added more logging for percolator.
Lowered log level in percolator tests.
2013-12-10 15:45:04 +01:00
Luca Cavanna ac158f6a87 Made sure the new cluster state is not held by AckCountDownListener
(also made AckCountDownListener class static)
2013-12-10 11:15:46 +01:00
Simon Willnauer acf371ef57 Do not override thetas if sum is less or equals to `0`
Closes #4390
2013-12-10 10:41:50 +01:00
Martijn van Groningen d3fde78394 Fix test failure. 2013-12-09 17:27:58 +01:00
Martijn van Groningen 1b481ef395 Support postings highlighter in percolate api.
The postings hl now uses a searcher that only encapsulate the view of segment the document being highlighted is in,
this should be better than using the top level engine searcher.

Closes #4385
2013-12-09 16:56:09 +01:00
Simon Willnauer 7cd189b3d3 Trace log all shard failures if an exception is attached. 2013-12-09 11:55:13 +01:00
Lee Hinman bc9698a347 Support 'yaml' as a format for the Analyze API
Fixes #4311
2013-12-08 15:08:00 -07:00
Shay Banon 36a76cc0ab add node and order to the source of update mapping 2013-12-08 03:32:10 +01:00
uboness 2e08977adc - fixing update mapping tests for index operations so the number of request will be based on the index thread pool size
- added update mapping tests for bulk operations
2013-12-07 22:57:18 +01:00
David Pilato 822acfa568 Query String caching could cause matched_filters not working
When searching with a query containing query_strings inside a bool query, the specified _name is randomly missing from the results due to caching.

Closes #4361.
Closes #4371.
2013-12-07 22:52:16 +01:00
Boaz Leskes b7d6cce4c9 Add an `usage` key to the CPU section of OsStats.toXContent.
This is just the sum of existing `sys` and `user`

Closes #4374
2013-12-07 21:26:22 +01:00
Shay Banon 4a3978d1b7 Optimize dynamic mapping updates on master by processing latest one per index/node
Instead of processing all the bulk of update mappings we have per index/node, we can only update the last ordered one out of those (cause they are incremented on the node/index level). This will improve the processing time of an index that have large updates of mappings.
closes #4373
2013-12-07 19:20:16 +01:00
Simon Willnauer dd95895977 Apply slop correctly if phrase query is wrapped in a filtered query.
If a phrase query is wrapped in a filtered query due to type filtering
slop was not applied correctly. Also if the default field required a
type filter the filter was not applied.

Closes #4356
2013-12-06 23:02:09 +01:00
Adrien Grand 309ee7d581 Fix _all boosting.
_all boosting used to rely on the fact that the TokenStream doesn't eagerly
consume the input java.io.Reader. This fixes the issue by using binary search
in order to find the right boost given a token's start offset.

Close #4315
2013-12-05 18:40:25 +01:00
Andrew Raines 53be1fe9d0 Cat: Add descs for rest of actions. 2013-12-05 10:44:26 -06:00
Andrew Raines aec2b95401 Cat: Add nodes column descriptions. 2013-12-05 08:44:00 -06:00
Shay Banon 28eff2ba29 remove help command, list all cat commands in /_cat?h endpoint 2013-12-05 14:36:27 +01:00
Boaz Leskes 0e78404af3 Added a FsStats.total section that sums up all stats for the different path.dirs. Added `disk_io_size` and `disk_io_op` to the toXContent output, summing up `disk_read_size+disk_write_size` and `disk_writes+disk_reads` respectively.
Closes #4344 , Closes #4343
2013-12-05 12:18:22 +01:00
Shay Banon e04474bcd8 Allow to disable sending a refresh-mapping to master node
When a node processed an index request, which caused it to update its own mapping, then it sends that mapping to the master. While the master process it, that node receives a state that includes an older version of the mapping. Now, there is a conflict, its not bad (i.e. the cluster state will eventually have the correct mapping), but we send for a refresh just in case form that node to the master.

With a system that has extreme cases of updates and frequent mapping changes, it might make sense to disable this feature. The indices.cluster.send_refresh_mapping setting can be introduced to support that (note, this setting need to be set on the data nodes)

Note, sending refresh mapping is more important when the reverse happens, and for some reason, the mapping in the master is ahead, or in conflict, with the actual parsing of it in the actual node the index exists on. In this case, the refresh mapping will result in warning being logged on the master node.

closes #4342
2013-12-05 01:18:39 +01:00
Shay Banon df4ffbe723 better error handling when processing refresh/update mapping
don't fail the whole bulk of updates, just the specific ones, and warn log it
2013-12-05 00:58:35 +01:00
Martijn van Groningen dd86db3347 Fixed incorrect results with `has_child` query with score mode if the parent type has nested object types. The inner objects (Separate Lucene docs) are also emitted as hits, which incorrectly decreased the count down short circuit mechanism in the `has_child` query.
Closes #4341
2013-12-05 00:57:10 +01:00
Simon Willnauer 2b42a0f94a Override DefaultExceptionHandler to filter out certain exceptions
We have the situation that some tests fail since they don't handle
EsRejectedExecutionException which gets thrown when a node shuts
down. That is ok to ignore this exception and not fail.
We also suffer from OOMs that can't create native threads but don't
get threaddumps for those failures. This patch prints the thread
stacks once we catch a OOM which can' create native threads.
2013-12-04 14:18:52 +00:00
Shay Banon 74bfa27e7e Fail geohash_cell filter if geohash prefix is not enabled
closes #4335
2013-12-04 13:16:55 +01:00
Martijn van Groningen eacbd8f88d Fixed parsing bug in percolator, where everything after the `doc` object was skipped.
Closes #4325
2013-12-04 01:11:24 +01:00
Adrien Grand 346d8efeb5 Fix implementation of currentValueHash in FieldDataSource.Bytes.SortedAndUnique.
Close #4330
2013-12-04 00:42:24 +01:00
Andrew Raines 9e4b5ea242 Introduce abstract superclass, group cat module bindings, and short-circuit helps. 2013-12-03 18:32:12 -05:00
Shay Banon adef349f74 MetaData to use new iterator in ImmutableOpenMap 2013-12-03 22:43:25 +01:00
Shay Banon fd014473d0 expose key and value iterators in ImmutableOpenMap 2013-12-03 22:29:54 +01:00
uboness 84d7929c3b - removed the getKeyAsString method from StringTerms (redundant method) 2013-12-03 18:18:23 +01:00
Martijn van Groningen 5fb15d3afa The registered queries were loaded after shard went to started phase, this resulted in the situation that the percolate api could be used while the registered queries still needed to be loaded from disk.
The newly added afterIndexShardPostRecovery method to InternalIndicesLifecycle, that the percolator now uses to trigger the loading of the registered queries will make sure that a shard doesn't go to started state before the queries have been loaded.
The percolate api (like other apis) will retry the execution on a different shard copy if a shard isn't in a started state preventing empty results if there registered queries to be loaded. Percolator tests fail sometimes for this reason.
2013-12-03 15:10:36 +01:00
Nik Everett 8e34057bc0 Add support for combining fields to the FVH
The Fast Vector Highlighter can combine matches on multiple fields to
highlight a single field using `matched_fields`.  This is most
intuitive for multifields that analyze the same string in different
ways.  Example:
{
    "query": {
        "query_string": {
            "query": "content.plain:running scissors",
            "fields": ["content"]
        }
    },
    "highlight": {
        "order": "score",
        "fields": {
            "content": {
                "matched_fields": ["content", "content.plain"],
                "type" : "fvh"
            }
        }
    }
}

Closes #3750
2013-12-03 11:10:01 +01:00
Nik Everett 7690b40ec6 Allow string fields to store token counts
To use this one you send a string to a field of type 'token_count'.  This
makes the most sense with a multi-field.
2013-12-03 09:39:32 +01:00
Martijn van Groningen 43691bb735 Removed shortCircuit in MatchDocIdSet since it is no longer used. 2013-12-02 18:28:27 +01:00
Simon Willnauer 2c8ee3fbbe Moving to 1.0.0RC1 snap 2013-12-02 17:10:07 +01:00
Kevin Kluge 296cfbe390 release [1.0.0.Beta2] 2013-12-02 15:45:30 +00:00
Martijn van Groningen 809c7d07f0 only wrap the parentFilter in ApplyAcceptedDocsFilter, not the other short circuit filters. 2013-12-02 11:05:55 +01:00
uboness cdc7dfbb2c Changed the "script_lang" parameter to "lang" in all value source based aggs - to be consistent with all other script based APIs. 2013-12-02 02:01:03 +01:00
Martijn van Groningen 079ac79617 Added random filtered query logic the to random parent query tests.
Fixed bug in ParentQuery.ChildScorer#advance(), the parent value was checked for the _uid field while the _parent should have been checked.
2013-12-02 00:18:59 +01:00
Martijn van Groningen 292e53fe77 The short circuit mechanism always needs to be wrapped with the live docs. In certain scenarios the live docs isn't passed down with acceptedDocs.
For example when a has_child is wrapped in a filtered query as query and the wrapped filter is cached.
The short circuit mechanism in that case counts down based on deleted docs, which then yields lower results than is expected.

Relates to #4306
2013-12-02 00:18:59 +01:00
Martijn van Groningen 04675f85cf Make the ChildrenQuery and ParentQuery not rely on the fact that score of 0 means that there isn't a match. 2013-12-01 17:22:58 +01:00
Martijn van Groningen 1285894f5f Also short circuit within segment when score mode is avg 2013-12-01 16:44:19 +01:00
Martijn van Groningen ac1e985670 Fixes related to accepted docs not taken into account:
* Removed the applyAcceptedDocs in ChildrenConstantScoreQuery, they need to be applied at all times. (because of short circuit mechanism)
* Moved ParentDocSet to FilteredDocIdSetIterator, because it fits better than MatchDocIdSet.
* Made similar changes to ParentConstantScoreQuery for consistency between the two queries. The bug accepted docs bug didn't occur in the ParentConstantScoreQuery.
* Updated random p/c tests to randomly update parent or child docs during the test run.

Closes #4306
2013-11-30 20:05:55 +01:00
Alexander Reelsen 971b828e76 Cat API: Improve help and execute help before sending server requests
* Force the cat API classes to have simple help available by extending from a AbstractCatAction
* Use a set binder on guice creation to create the help on node start up
* Make sure that the help/field info is returned without querying any data
2013-11-30 16:22:30 +01:00
Shay Banon ed01d53506 NullPointerException in FsTranslog when reverting transient log
This happens when reverting the trans transaction log on failure, and when that happens, actually we might have failed on the transient translog creation to being with....
fixes #4223
2013-11-30 00:30:32 +01:00
Clinton Gormley bc393b6d79 Changed the minScore comparator from > to >=
Closes #4303
2013-11-29 20:29:20 +01:00
Adrien Grand 65541e6912 Fix computation of explanations for AllTermQuery.
The use of freq() instead of sloppyFreq() and the fact that `numMatches` was
not updated in `setFreqCurrentDoc` could lead to an inaccurate score in the
explanation.

Close #4298
2013-11-29 19:24:56 +01:00
Benjamin Devèze c20d4bb69e Add line feed for prettified main REST action 2013-11-29 16:42:50 +01:00
uboness 0d6a35b9a7 - Added support for term filtering based on include/exclude regex on the terms agg
- Added javadoc to the TermsBuilder

Closes #4267
2013-11-29 13:46:48 +01:00
Luca Cavanna 630641f292 Refactored put mapping api to make use of the new recently introduced generic ack mechanism
Note: we were previously waiting for ack only from all nodes that contain shards for the indices that the mapping updatewas applied to. This change introduces a wait for ack from all nodes, consitent with other api as the ack is meant more on the cluster state itself, which is held by all nodes and needs to be updated on all nodes anyway.

Closes #4228
2013-11-29 11:39:23 +01:00
Alexander Reelsen 0ec3eaf53d Completion postings format: Write hole character
Another issue found by randomized testing.
2013-11-29 10:40:33 +01:00
Andrew Raines 28ecafac11 Display placeholder for non-master-eligible nodes. 2013-11-29 02:35:45 -06:00
Andrew Raines 455c92d27b Check for load avg before attempting to display. 2013-11-29 02:32:54 -06:00
Andrew Raines 9aee9949e5 Convert _cat/count to TimestampedTable. 2013-11-29 02:19:56 -06:00
Andrew Raines d16aacb8d3 Supply field descriptions for TimestampedTable. 2013-11-29 02:19:15 -06:00
Andrew Raines 91999e14ce Add _cat/pending_tasks.
Closes #4251.
2013-11-29 01:09:06 -06:00
Andrew Raines 8f4c8e0d4a Should be limiting health request to concreteIndices.
Closes #4296.
2013-11-28 21:13:32 -06:00
imotov d2f91173b7 Increase priority of shard started task to URGENT 2013-11-28 19:20:18 -05:00
Martijn van Groningen 61aba89110 Added aggregation support to the percolate api.
Closes #4245
2013-11-28 17:26:07 +01:00
Martijn van Groningen 2ca5fd64fe Fixed positive infinity bug that can occur in specific scenarios when score mode average is used.
Closes #4291
2013-11-28 17:21:29 +01:00
Simon Willnauer 06f520ebeb Use FilterDirectory from lucene instead of maintaining a copy
FilterDirectory has been ported to Lucene in LUCENE-5204 which makes
the class in elasticsearch obsolet. This commit removes the class and
moves the static utils that are not in lucene to `DirectoryUtils`
2013-11-28 14:37:48 +01:00
Alexander Reelsen 11de330246 Made hole character in XAnalyzingSuggester part of Postingsformat
* Hole charactor now can change with new releases
* Fixed bug where the SEP_LABEL constant was used instead of the sepLabel instance variable
* Replaced if- with switch-statement
2013-11-28 14:22:10 +01:00
Simon Willnauer 71eb4532f8 Catch AlreadClosedException in RobinSearcher#release()
When we relocate a shard we might still have pending SearchContext
instances hanging around that will be used in "in-flight" searches
on the already relocated shard. This is a valid operation but if
we have already closed the underlying directory which happens during
cleanup concurrently the close call on the IndexReader can trigger
an AlreadyClosedException when the NRT reader tries to cleanup files
via the IndexWriter.

Closes #4273
2013-11-27 15:55:30 +01:00
Adrien Grand 596d511466 Cleanup of IndexFieldDataService.getForField.
This method has 2 signatures and one of them is dangerous since it allows to
discard fielddata configuration of the field mapper. This commit changes the
percolator so that it uses fielddata configuration of the _id field mapper
instead of forcing the paged_bytes format.

Closes #4270
2013-11-27 14:56:09 +01:00
uboness fda6ca4869 Added support for shard_size in terms agg
Closes #4242
2013-11-27 14:16:58 +01:00
Alexander Reelsen 4774439436 Fixed file-based template loading via config/templates
When parsing the json file, the first field is ignored as
parser.nextToken() seems to be called too often.

Closes #4235
2013-11-27 09:49:15 +01:00
Simon Willnauer e66c2793aa Add hole character to the reverved characters for completion suggester 2013-11-26 22:46:43 +01:00