Commit Graph

4249 Commits

Author SHA1 Message Date
Shay Banon 2094207bf1 add completed count to thread pools 2012-11-22 15:55:25 +01:00
Shay Banon e1679b89bb fix failed test that were using the wrong form match query 2012-11-22 15:14:02 +01:00
Shay Banon 192cf5298a fix failed test that were using the wrong form match query 2012-11-22 14:44:03 +01:00
Shay Banon f4d6d8139d Match query should fail when trying to provide several fields in its simplified form
fixes #2432
2012-11-22 10:23:48 +01:00
Chris Male 2541847945 Added control over Query used by MatchQuery with there are zero terms after analysis 2012-11-22 22:13:29 +13:00
Shay Banon 9a90c1c3b5 conservative timeouts on internal recovery actions
safe guards against cases where intenral recovery actions take too long (possibly due to a bug)
2012-11-22 00:31:57 +01:00
Shay Banon f5a3261e15 only log that we delete unused shard if it exists 2012-11-21 20:45:31 +01:00
Shay Banon d9b78000b1 Setting logger levels using cluster update settings does not work
fixes #2428
2012-11-21 13:44:54 +01:00
Chris Male 9e2469e04f Add per-field Similarity support 2012-11-21 12:44:59 +13:00
Shay Banon 4e8a9008b7 second phase at optimizing merging/parsing large new mappings
apply the new mappings only after the parsing/merging of a full doc/mapping is done
2012-11-19 17:40:13 +01:00
Shay Banon 303752d78a first phase at optimizing merging large mappings
bulk them the same level ones when traversing and introduce them
2012-11-19 17:13:45 +01:00
Shay Banon 6e597ffccb allow to associate a payload with bulk requests 2012-11-19 16:16:35 +01:00
David Pilato 83257c8af8 Add constructor IndexRequest(String index, String type) and fix javadoc 2012-11-19 13:52:55 +01:00
David Pilato b2597b5316 Add a toString() method to MultiSearchResponse 2012-11-19 13:50:58 +01:00
Simon Willnauer 840eaf983d Add JavaDocs for Codecs, PostingsFormat and related services/modules 2012-11-19 10:25:26 +01:00
Shay Banon c09ee82ef5 keep the uidField around so we don't have to look it up 2012-11-15 12:52:58 +01:00
Shay Banon e2e25ffea3 uid to use bloom filter posting by default 2012-11-15 11:57:48 +01:00
Martijn van Groningen 3577d826f2 Removed old file. 2012-11-15 11:54:51 +01:00
Martijn van Groningen be70722de7 Renamed pulsing40 and Lucene40 postings format providers to pulsing and default respectively for more consistent naming in settings. 2012-11-15 09:54:00 +01:00
Martijn van Groningen 20c6085852 changed test method names. 2012-11-15 09:40:24 +01:00
Martijn van Groningen e80f74584b Added licence header. 2012-11-15 00:18:49 +01:00
Martijn van Groningen fd5bd102aa lucene 4: Exposed Lucene's codec api
This feature adds the option to configure a `PostingsFormat` and assign it to a field in the mapping. This feature is very expert and in almost all cases Elasticsearch's defaults will suite your needs.

## Configuring a postingsformat per field

There're several default postings formats configured by default which can be used in your mapping:
a* `direct` - A codec that wraps the default postings format during write time, but loads the terms and postinglists into memory directly in memory during read time as raw arrays. This postings format is exceptional memory intensive, but can give a substantial increase in search performance.
* `memory` - A codec that loads and stores terms and postinglists in memory using a FST. Acts like a cached postingslist.
* `bloom_default` - Maintains a bloom filter for the indexed terms, which is stored to disk and builds on top of the `default` postings format. This postings format is useful for low document frequency terms and offers a fail fast for seeks to terms that don't exist.
* `bloom_pulsing` - Similar to the `bloom_default` postings format, but builds on top of the `pulsing` postings format.
* `default` - The default postings format. The default if none is specified.

On all fields it possible to configure a `postings_format` attribute. Example mapping:
```
{
  "person" : {
     "properties" : {
         "second_person_id" : {"type" : "string", "postings_format" : "pulsing"}
     }
  }
}
```

## Configuring a custom postingsformat
It is possible the instantiate custom postingsformats. This can be specified via the index settings.
```
{
   "codec" : {
      "postings_format" : {
         "my_format" : {
            "type" : "pulsing40"
            "freq_cut_off" : "5"
         }
      }
   }
}
```
In the above example the `freq_cut_off` is set the 5 (defaults to 1). This tells the pulsing postings format to inline the postinglist of terms with a document frequency lower or equal to 5 in the term dictionary.

Closes #2411
2012-11-14 23:54:29 +01:00
Igor Motov 120560bd0a Using non-mapped fields in prefix queries shouldn't cause NullPointerException
Fixes #2408
2012-11-14 18:34:54 +01:00
Igor Motov f47d62cc30 Date fields shouldn't be returned as longs by Get API 2012-11-13 21:36:28 +01:00
Igor Motov d1281d283b Add `index.routing.allocation.require....` and `cluster.routing.allocation.require....` settings
Fixes #2404
2012-11-13 19:29:20 +01:00
Igor Motov ea2732a967 lucene 4: field visitors shouldn't return fields that were not present in the visited document 2012-11-13 07:35:54 -05:00
Shay Banon 258244ef37 Deriving the REST status code from a failure can, very rarely, cause an infinite loop
fixes #2402
2012-11-12 17:09:34 +01:00
Nicholas Tung 46e1886975 Allow both .yml and .yaml as valid YAML configuration file extensions 2012-11-12 14:06:04 +01:00
Igor Motov 3ff54c0b5c Add logging for environment paths on startup 2012-11-12 14:04:13 +01:00
Shay Banon 6ede42bc37 merge lucene_4 2012-11-12 13:50:14 +01:00
Martijn van Groningen 978c95649e lucene 4: Fixed SimpleQueryTests 2012-11-12 13:44:42 +01:00
Martijn van Groningen 05746adeb2 lucene 4: Set number of replicas to 0. Makes the test run faster. 2012-11-12 13:44:42 +01:00
Martijn van Groningen e2c33ed659 lucene 4: Fixed BitsetExecutionChildQuerySearchTests class. 2012-11-12 13:44:42 +01:00
Shay Banon 9a79fb40bf lucene 4: sort values on hit are Text, not BytesRef 2012-11-12 13:44:42 +01:00
Igor Motov c46228254d lucene 4: fix TTL 2012-11-12 13:44:42 +01:00
Igor Motov c2f3eab7d3 lucene 4: fix sorting 2012-11-12 13:44:42 +01:00
Shay Banon 2b58c2dfff lucene 4: optimize read/write BytesRef handling 2012-11-12 13:44:42 +01:00
Igor Motov c8cf72d657 lucene 4: fix handling of deleted docs in TermFilter 2012-11-12 13:44:42 +01:00
uboness d069212ce4 * fixed the type check for short 2012-11-12 13:44:42 +01:00
uboness 46223c117a * removed unused Streamables class 2012-11-12 13:44:42 +01:00
uboness ed2b009f07 * changed instanceof to be consistent with other type checks 2012-11-12 13:44:41 +01:00
uboness cae66fb636 * lucene 4: added missing short support in stream input/output
* lucene 4: added more extensive test for stored fields
2012-11-12 13:44:41 +01:00
Igor Motov f8842d5a4f lucene 4: fix TokenFilterTests 2012-11-12 13:44:41 +01:00
Igor Motov 98eb97a1ff lucene 4: fix NoopCollector 2012-11-12 13:44:41 +01:00
Shay Banon 9d5cae23fa lucene 4: fix general mapping test
no need to test for boost, we already have specific boost tests, in general, we should get rid of this test, and use more specialized tests if we are missing some
2012-11-12 13:44:41 +01:00
Shay Banon 5c45aad260 lucene 4: fix boost mapping tests 2012-11-12 13:44:41 +01:00
Igor Motov ffd262e96f lucene 4: rollback optimization in SingleFieldVisitor for now to make it work 2012-11-12 13:44:41 +01:00
Igor Motov cfbd17992a lucene 4: convert script term to string 2012-11-12 13:44:41 +01:00
Igor Motov 74464f9f99 lucene 4: fix possible NPE in range queries and filters if one of the bounds is not specified 2012-11-12 13:44:41 +01:00
Igor Motov 6d40770200 lucene 4: fixed facets and filtering aliases
I am not completely sure about this one, but it reduces the number of failing tests from 98 to 31 so I am going to check it in. Please, review and fix it, if there is a better solution.

Because of change in Lucene 4.0, ContextIndexSearcher was bypassed and elasticsearch filters and collectors were ignored.

In lucene 3.6 the stack of Searcher search calls looked like this:
search(Query query, int n)
search(Query query, Filter filter, int n)
search(Weight weight, Filter filter, int nDocs)
search(Weight weight, Filter filter, ScoreDoc after, int nDocs)
search(Weight weight, Filter filter, Collector collector) <-- this is ContextIndexSearcher was injecting combined filter and collector
search(Weight weight, Filter filter, Collector collector)

In Lucene 4.0 the stack looks like this:
search(Query query, int n)
search(Query query, Filter filter, int n) <-- here lucene wraps Query and Filter into Weight
search(Weight weight, ScoreDoc after, int nDocs)
search(List<AtomicReaderContext> leaves, Weight weight, ScoreDoc after, int nDocs)
search(List<AtomicReaderContext> leaves, Weight weight, Collector collector)
...

In other words, when we have Filter, we don't have a Collector yet, but when we have Collector, Filter is already wrapped inside Weight.  The only way to fix for the problem that I could think of is by introducing two injection points: one for Filters and another one for Collectors:

search(Query query, int n)
search(Query query, Filter filter, int n) <-- here combined Filters are injected
search(Weight weight, ScoreDoc after, int nDocs)
search(List<AtomicReaderContext> leaves, Weight weight, ScoreDoc after, int nDocs)
search(List<AtomicReaderContext> leaves, Weight weight, Collector collector) <-- here Collectors are injected

Similar problem existed for count(), so I had to override search(Query query, Collector results) as well.
2012-11-12 13:44:41 +01:00