[hibernate-commits] [hibernate/hibernate-search] 6804bc: HSEARCH-2172 Make it possible for different indexi...

GitHub noreply at github.com
Tue Dec 13 17:29:07 EST 2016


  Branch: refs/heads/master
  Home:   https://github.com/hibernate/hibernate-search
  Commit: 6804bc87ba5456cd28c26f1d4cea5e465af56fe2
      https://github.com/hibernate/hibernate-search/commit/6804bc87ba5456cd28c26f1d4cea5e465af56fe2
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2016-12-13 (Tue, 13 Dec 2016)

  Changed paths:
    M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/bridge/builtin/impl/ElasticsearchBooleanBridge.java
    M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/schema/impl/DefaultElasticsearchSchemaTranslator.java
    M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/spi/ElasticsearchIndexManagerType.java
    M engine/src/main/java/org/hibernate/search/bridge/builtin/NumericEncodingDateBridge.java
    M engine/src/main/java/org/hibernate/search/bridge/builtin/NumericFieldBridge.java
    M engine/src/main/java/org/hibernate/search/bridge/builtin/impl/NullEncodingTwoWayFieldBridge.java
    R engine/src/main/java/org/hibernate/search/bridge/builtin/nullencoding/impl/KeywordBasedNullCodec.java
    R engine/src/main/java/org/hibernate/search/bridge/builtin/nullencoding/impl/NotEncodingCodec.java
    R engine/src/main/java/org/hibernate/search/bridge/builtin/nullencoding/impl/NumericDoubleNullCodec.java
    R engine/src/main/java/org/hibernate/search/bridge/builtin/nullencoding/impl/NumericFloatNullCodec.java
    R engine/src/main/java/org/hibernate/search/bridge/builtin/nullencoding/impl/NumericIntegerNullCodec.java
    R engine/src/main/java/org/hibernate/search/bridge/builtin/nullencoding/impl/NumericLongNullCodec.java
    M engine/src/main/java/org/hibernate/search/bridge/builtin/time/impl/DurationBridge.java
    M engine/src/main/java/org/hibernate/search/bridge/builtin/time/impl/InstantBridge.java
    M engine/src/main/java/org/hibernate/search/bridge/builtin/time/impl/YearBridge.java
    M engine/src/main/java/org/hibernate/search/bridge/spi/EncodingBridge.java
    A engine/src/main/java/org/hibernate/search/bridge/spi/NullMarker.java
    R engine/src/main/java/org/hibernate/search/bridge/spi/NullMarkerCodec.java
    M engine/src/main/java/org/hibernate/search/bridge/util/impl/EncodingStringBridge.java
    A engine/src/main/java/org/hibernate/search/bridge/util/impl/ToStringNullMarker.java
    M engine/src/main/java/org/hibernate/search/engine/impl/LuceneOptionsImpl.java
    M engine/src/main/java/org/hibernate/search/engine/metadata/impl/AnnotationMetadataProvider.java
    M engine/src/main/java/org/hibernate/search/engine/metadata/impl/DocumentFieldMetadata.java
    M engine/src/main/java/org/hibernate/search/engine/metadata/impl/MetadataProvider.java
    M engine/src/main/java/org/hibernate/search/engine/metadata/impl/ParseContext.java
    A engine/src/main/java/org/hibernate/search/engine/nulls/codec/impl/LuceneDoubleNullMarkerCodec.java
    A engine/src/main/java/org/hibernate/search/engine/nulls/codec/impl/LuceneFloatNullMarkerCodec.java
    A engine/src/main/java/org/hibernate/search/engine/nulls/codec/impl/LuceneIntegerNullMarkerCodec.java
    A engine/src/main/java/org/hibernate/search/engine/nulls/codec/impl/LuceneLongNullMarkerCodec.java
    A engine/src/main/java/org/hibernate/search/engine/nulls/codec/impl/LuceneNullMarkerCodec.java
    A engine/src/main/java/org/hibernate/search/engine/nulls/codec/impl/LuceneStringNullMarkerCodec.java
    A engine/src/main/java/org/hibernate/search/engine/nulls/codec/impl/NotEncodingCodec.java
    A engine/src/main/java/org/hibernate/search/engine/nulls/codec/impl/NullMarkerCodec.java
    A engine/src/main/java/org/hibernate/search/engine/nulls/impl/LuceneMissingValueStrategy.java
    A engine/src/main/java/org/hibernate/search/engine/nulls/impl/MissingValueStrategy.java
    M engine/src/main/java/org/hibernate/search/engine/spi/DocumentBuilderIndexedEntity.java
    M engine/src/main/java/org/hibernate/search/indexes/spi/IndexManagerType.java
    M engine/src/main/java/org/hibernate/search/indexes/spi/LuceneEmbeddedIndexManagerType.java
    M engine/src/main/java/org/hibernate/search/metadata/impl/FieldDescriptorImpl.java
    M engine/src/main/java/org/hibernate/search/util/logging/impl/Log.java

  Log Message:
  -----------
  HSEARCH-2172 Make it possible for different indexing services to use different NullMarkerCodecs

This essentially split responsibilities around null encoding:

 * encoding indexNullAs as an indexable value remains the responsibility
   of bridges implementing EncodingBridge, though they now do that
   more explicitely. They now return a simpler NullMarker instead
   of a NullMarkerCodec.
 * adding the encoded value to a document and querying null values
   remains the responsibility of the NullMarkerCodec, but it is
   now defined (based on the NullMarker) by a MissingValueStrategy,
   which is defined by the IndexManagerType.


  Commit: b851a8745956452b2fb9f768f30d65e356ec1469
      https://github.com/hibernate/hibernate-search/commit/b851a8745956452b2fb9f768f30d65e356ec1469
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2016-12-13 (Tue, 13 Dec 2016)

  Changed paths:
    M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchLuceneQueryTranslator.java
    M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchNestingContextFactoryProvider.java
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/util/impl/ElasticsearchEntityHelper.java

  Log Message:
  -----------
  HSEARCH-2172 Add a helper to test whether an entity is mapped with Elasticsearch available

This code was previously copied in two different places.


  Commit: 22692b60a8d9b0b78ce2a5f7072b9f5b168d0546
      https://github.com/hibernate/hibernate-search/commit/22692b60a8d9b0b78ce2a5f7072b9f5b168d0546
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2016-12-13 (Tue, 13 Dec 2016)

  Changed paths:
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/AbstractMarkerField.java
    M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchIndexWorkVisitor.java
    M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchNestingContextFactoryProvider.java
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/nulls/codec/impl/ElasticsearchBooleanNullMarkerCodec.java
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/nulls/codec/impl/ElasticsearchDoubleNullMarkerCodec.java
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/nulls/codec/impl/ElasticsearchFloatNullMarkerCodec.java
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/nulls/codec/impl/ElasticsearchIntegerNullMarkerCodec.java
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/nulls/codec/impl/ElasticsearchLongNullMarkerCodec.java
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/nulls/codec/impl/ElasticsearchNullMarkerCodec.java
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/nulls/codec/impl/ElasticsearchStringNullMarkerCodec.java
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/nulls/impl/ElasticsearchMissingValueStrategy.java
    A elasticsearch/src/main/java/org/hibernate/search/elasticsearch/nulls/impl/ElasticsearchNullMarkerField.java
    M elasticsearch/src/main/java/org/hibernate/search/elasticsearch/spi/ElasticsearchIndexManagerType.java
    M elasticsearch/src/test/java/org/hibernate/search/elasticsearch/test/ElasticsearchIndexNullAsIT.java

  Log Message:
  -----------
  HSEARCH-2172 Ensure non-null fields with a value equal to the indexAsNull marker are not indexed as null with Elasticsearch

This is done by making the Elasticsearch index manager type provide its
own MissingValueStrategy, that will use NullMarkerCodecs that add
specific markers in the document when indexing.
This enables the ElasticsearchIndexWorkVisitor to distinguish between
actual null values and non-null values that happen to match the null
marker.


  Commit: f0ee99f4acf0bd05d033c829864f985d2391969d
      https://github.com/hibernate/hibernate-search/commit/f0ee99f4acf0bd05d033c829864f985d2391969d
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2016-12-13 (Tue, 13 Dec 2016)

  Changed paths:
    M elasticsearch/src/test/java/org/hibernate/search/elasticsearch/test/GolfPlayer.java

  Log Message:
  -----------
  HSEARCH-2172 Fix ElasticsearchNullValueIT.testProjectionOfNullValues

There was an issue in GolfPlayer.Builder that altered the value of
GolfPlayer.active when it wasn't explicitly initialized.

The issue didn't show up before because the value was being initialized
with "false", which was indexed as null because of the bug we just
fixed.


Compare: https://github.com/hibernate/hibernate-search/compare/529a2d454467...f0ee99f4acf0


More information about the hibernate-commits mailing list