Skip to content

Commit

Permalink
HSEARCH-4313 Remove duplicate additional section identifiers
Browse files Browse the repository at this point in the history
  • Loading branch information
yrodiere committed Oct 4, 2021
1 parent 735a80a commit 61b4453
Show file tree
Hide file tree
Showing 26 changed files with 86 additions and 86 deletions.
4 changes: 2 additions & 2 deletions documentation/src/main/asciidoc/internals/index.asciidoc
Expand Up @@ -288,7 +288,7 @@ NOTE: Indexing processors are logged at the debug level during bootstrap.
Enable this level of logging for the Hibernate Search classes if you want to understand the indexing processor
tree that was generated for a given mapping.

==== [[_bootstrap]] Bootstrap
==== Bootstrap

For each indexed type, the building process consists in creating a root `PojoIndexingProcessorOriginalTypeNode` builder,
and applying metadata contributors to this builder (see <<overall-bootstrap>>),
Expand Down Expand Up @@ -387,7 +387,7 @@ NOTE: Reindexing resolvers are logged at the debug level during bootstrap.
Enable this level of logging for the Hibernate Search classes if you want to understand the reindexing resolver
tree that was generated for a given mapping.

==== [[_bootstrap]] Bootstrap
==== Bootstrap

One reindexing resolver tree is built during bootstrap for each indexed or contained type.
The entry point to building these resolvers may not be obvious: it is the indexing resolver building process.
Expand Down
Expand Up @@ -134,7 +134,7 @@ Implementations offering better performance
also bring issues of their own.
====

==== [[_other_configuration_options]] Other configuration options
==== Other configuration options

The `local-filesystem` directory also allows configuring a
<<backend-lucene-configuration-directory-locking-strategy,locking strategy>>.
Expand Down
@@ -1,11 +1,11 @@
= [[_further_reading]] Further reading

== [[_elasticsearch]] Elasticsearch
== Elasticsearch

link:{elasticsearchDocUrl}[Elasticsearch's reference documentation] is an excellent starting point
to learn more about Elasticsearch.

== [[_lucene]] Lucene
== Lucene

To learn more about Lucene,
you can get a copy to link:$$http://www.manning.com/hatcher3/$$[Lucene in Action (Second Edition)],
Expand All @@ -19,7 +19,7 @@ If you want to deepen your knowledge of Hibernate ORM,
start with the link:$$http://hibernate.org/orm/documentation/$$[online documentation] or get hold
of a copy of link:$$http://www.manning.com/bauer3/$$[Java Persistence with Hibernate, Second Edition].

== [[_other]] Other
== Other

If you have any further questions or feedback regarding Hibernate Search,
reach out to the https://hibernate.org/community/[Hibernate community].
Expand Down
Expand Up @@ -168,7 +168,7 @@ so that Hibernate Search doesn't even try to use Spring to retrieve the componen
and thus avoids the deadlock in Spring.
See <<configuration-bean-reference-parsing,this section>> for more information.

=== [[_other]] Other
=== Other

If your framework of choice is not mentioned in the previous sections, don't worry:
Hibernate Search works just fine with plenty of other frameworks.
Expand Down
30 changes: 15 additions & 15 deletions documentation/src/main/asciidoc/reference/limitations.asciidoc
Expand Up @@ -4,7 +4,7 @@
[[limitations-parallel-embedded-update]]
== Without coordination, in rare cases, automatic indexing involving `@IndexedEmbedded` may lead to out-of sync indexes

=== [[_description]] Description
=== Description

With the default settings (<<coordination-none,no coordination>>),
if two entity instances are <<mapper-orm-indexedembedded,indexed-embedded>> in the same "index-embedding" entity,
Expand Down Expand Up @@ -35,7 +35,7 @@ will lead to an out of date index:

This chain of events ends with the index containing a version of A where C is updated, but B is not.

=== [[_solutions_and_workarounds]] Solutions and workarounds
=== Solutions and workarounds

The following solutions can help circumvent this limitation:

Expand All @@ -47,7 +47,7 @@ This is only possible in very specific setups.
3. OR schedule a <<mapper-orm-indexing-massindexer,full reindexing>> of your database periodically (e.g. every night)
to get the index back in sync with the database.

=== [[_roadmap]] Roadmap
=== Roadmap

This limitation is caused directly by the lack of coordination between threads or application nodes,
so it can only be addressed completely by configuring <<coordination,coordination>>.
Expand All @@ -57,7 +57,7 @@ There are no other solutions currently on the roadmap.
[[limitations-backend-indexing-error]]
== Without coordination, backend errors during automatic indexing may lead to out-of sync indexes

=== [[_description]] Description
=== Description

With the default settings (<<coordination-none,no coordination>>),
<<mapper-orm-indexing-automatic,automatic indexing>>
Expand All @@ -73,7 +73,7 @@ Errors occurring in user code (getters, custom <<mapper-orm-bridge,bridges>>, ..
will safely cancel the whole database transaction without indexing anything,
ensuring that indexes are still in sync with the database.

=== [[_solutions_and_workarounds]] Solutions and workarounds
=== Solutions and workarounds

The following solutions can help circumvent this limitation:

Expand All @@ -83,7 +83,7 @@ See in particular <<architecture-examples>>.
2. OR schedule a <<mapper-orm-indexing-massindexer,full reindexing>> of your database periodically (e.g. every night)
to get the index back in sync with the database.

=== [[_roadmap]] Roadmap
=== Roadmap

This limitation is caused directly by the lack of persistence of entity change events,
so it can only be addressed completely by persisting those events,
Expand All @@ -97,7 +97,7 @@ and they are not currently on the roadmap.
[[limitations-changes-in-session]]
== Automatic indexing only considers changes applied directly to entity instances in Hibernate ORM sessions

=== [[_description]] Description
=== Description

Due to <<mapper-orm-indexing-automatic-concepts-changes-in-session,how Hibernate Search uses internal events of Hibernate ORM>>
in order to detect changes,
Expand All @@ -107,13 +107,13 @@ be it SQL or JPQL/HQL queries.
This is because queries are executed on the database side,
without Hibernate ORM or Search having any knowledge of which entities are actually created, deleted or updated.

=== [[_solutions_and_workarounds]] Solutions and workarounds
=== Solutions and workarounds

One workaround is to reindex explicitly after you run JPQL/SQL queries,
either using the <<mapper-orm-indexing-massindexer,`MassIndexer`>>
or <<mapper-orm-indexing-manual,manually>>.

=== [[_roadmap]] Roadmap
=== Roadmap

One solution to actually detect these changes would be to source entity change events
directly from the database, using for example Debezium.
Expand All @@ -124,7 +124,7 @@ but is long-term goal.
[[limitations-changes-asymmetric-association-updates]]
== [[mapper-orm-indexing-automatic-concepts-session-consistency]] Automatic indexing ignores asymmetric association updates

=== [[_description]] Description
=== Description

Hibernate ORM is able to handle asymmetric updates of associations,
where only the owning side of association is updated and the other side is ignored.
Expand Down Expand Up @@ -154,7 +154,7 @@ In the end, the only way for Hibernate Search to know that `A` needs to be reind
is to also set `A.b` to `null`, which will cause Hibernate Search to detect that `A.b` changed,
and thus that `A` changed too.

=== [[_solutions_and_workarounds]] Solutions and workarounds
=== Solutions and workarounds

The following solutions can help circumvent this limitation:

Expand All @@ -165,7 +165,7 @@ reindex affected entities explicitly after the association update,
either using the <<mapper-orm-indexing-massindexer,`MassIndexer`>>
or <<mapper-orm-indexing-manual,manually>>.

=== [[_roadmap]] Roadmap
=== Roadmap

Hibernate Search may handle asymmetric association updates in the future,
by keeping tracks of entities added to / removed from an association.
Expand All @@ -181,7 +181,7 @@ but is long-term goal.
[[limitations-indexing-plan-serialization]]
== Automatic indexing is not compatible with `Session` serialization

=== [[_description]] Description
=== Description

When <<mapper-orm-indexing-automatic,automatic indexing>> is enabled,
Hibernate Search collects entity change events
Expand All @@ -198,11 +198,11 @@ and Hibernate Search will likely "forget" to reindex some entities.
This is fine in most applications, since they do not rely on serializing the session,
but it might be a problem with some JEE applications relying on Bean Passivation.

=== [[_solutions_and_workarounds]] Solutions and workarounds
=== Solutions and workarounds

Avoid serializing an ORM `EntityManager`/`Session` after changing entities.

=== [[_roadmap]] Roadmap
=== Roadmap

There are no plans to address this limitation.
We do not intend to support `Session` serialization when Hibernate Search is enabled.
@@ -1,7 +1,7 @@
[[mapper-orm-bridge-bridgedelement-dependencies]]
= Declaring dependencies to bridged elements

== [[_basics]] Basics
== Basics

In order to keep the index synchronized,
Hibernate Search needs to be aware of all the entity properties that are used to produce indexed documents,
Expand Down
@@ -1,7 +1,7 @@
[[mapper-orm-bridge-identifierbridge]]
= Identifier bridge

== [[_basics]] Basics
== Basics

An identifier bridge is a pluggable component that implements
the mapping of an entity property to a document identifier.
Expand Down Expand Up @@ -44,7 +44,7 @@ include::{sourcedir}/org/hibernate/search/documentation/mapper/orm/bridge/identi
It is also possible to reference the bridge by its name, in the case of a CDI/Spring bean.
====

== [[_type_resolution]] Type resolution
== Type resolution

By default, the identifier bridge's property type is determined automatically,
using reflection to extract the generic type argument of the `IdentifierBridge` interface.
Expand All @@ -64,7 +64,7 @@ If you need more complex types,
you can bypass the automatic resolution and specify types explicitly
using an <<mapper-orm-bridge-identifierbridge-identifierbinder,`IdentifierBinder`>>.

== [[_compatibility_across_indexes_with_iscompatiblewith]] Compatibility across indexes with `isCompatibleWith()`
== Compatibility across indexes with `isCompatibleWith()`

An identifier bridge is involved in indexing,
but also in the search DSLs,
Expand Down Expand Up @@ -136,7 +136,7 @@ There are two ways to pass parameters to identifier bridges:
* One is (mostly) limited to string parameters, but is trivial to implement.
* The other can allow any type of parameters, but requires you to declare your own annotations.

=== [[_simple_string_parameters]] Simple, string parameters
=== Simple, string parameters

You can pass string parameters to the `@IdentifierBinderRef` annotation and then use them later in the binder:

Expand Down Expand Up @@ -169,7 +169,7 @@ include::{sourcedir}/org/hibernate/search/documentation/mapper/orm/bridge/identi
setting the parameter.
====

=== [[_parameters_with_custom_annotations]] Parameters with custom annotations
=== Parameters with custom annotations

You can pass parameters of any type to the bridge by defining
a <<mapper-orm-custom-annotations,custom annotation>> with attributes:
Expand Down Expand Up @@ -221,7 +221,7 @@ include::{sourcedir}/org/hibernate/search/documentation/mapper/orm/bridge/identi
setting the parameter.
====

== [[_accessing_the_orm_session_or_session_factory_from_the_bridge]] Accessing the ORM session or session factory from the bridge
== Accessing the ORM session or session factory from the bridge

Contexts passed to the bridge methods can be used to retrieve the Hibernate ORM session or session factory.

Expand Down Expand Up @@ -276,7 +276,7 @@ include::{sourcedir}/org/hibernate/search/documentation/mapper/orm/bridge/identi
----
====

== [[_incubating_features]] Incubating features
== Incubating features

include::components/incubating-warning.asciidoc[]

Expand Down
@@ -1,7 +1,7 @@
[[mapper-orm-bridge-index-field-dsl]]
= Declaring and writing to index fields

== [[_basics]] Basics
== Basics

When implementing a <<mapper-orm-bridge-propertybridge,`PropertyBinder`>>
or <<mapper-orm-bridge-typebridge,`TypeBinder`>>,
Expand Down
@@ -1,7 +1,7 @@
[[mapper-orm-bridge-index-field-type-dsl]]
= Defining index field types

== [[_basics]] Basics
== Basics

A specificity of Lucene-based search engines (including Elasticsearch) is that field types
are much more complex than just a data type ("string", "integer", ...).
Expand Down
@@ -1,7 +1,7 @@
[[mapper-orm-bridge-propertybridge]]
= [[section-field-bridge]] Property bridge

== [[_basics]] Basics
== Basics

A property bridge, like a <<mapper-orm-bridge-valuebridge,value bridge>>,
is a pluggable component that implements
Expand Down Expand Up @@ -124,7 +124,7 @@ There are two ways to pass parameters to property bridges:
* One is (mostly) limited to string parameters, but is trivial to implement.
* The other can allow any type of parameters, but requires you to declare your own annotations.

=== [[_simple_string_parameters]] Simple, string parameters
=== Simple, string parameters

You can pass string parameters to the `@PropertyBinderRef` annotation and then use them later in the binder:

Expand Down Expand Up @@ -154,7 +154,7 @@ include::{sourcedir}/org/hibernate/search/documentation/mapper/orm/bridge/proper
setting the `fieldName` parameter.
====

=== [[_parameters_with_custom_annotations]] Parameters with custom annotations
=== Parameters with custom annotations

You can pass parameters of any type to the bridge by defining
a <<mapper-orm-custom-annotations,custom annotation>> with attributes:
Expand Down Expand Up @@ -206,7 +206,7 @@ include::{sourcedir}/org/hibernate/search/documentation/mapper/orm/bridge/proper
setting the `fieldName` parameter.
====

== [[_accessing_the_orm_session_from_the_bridge]] Accessing the ORM session from the bridge
== Accessing the ORM session from the bridge

Contexts passed to the bridge methods can be used to retrieve the Hibernate ORM session.

Expand All @@ -220,7 +220,7 @@ include::{sourcedir}/org/hibernate/search/documentation/mapper/orm/bridge/proper
<2> Retrieve the `Session` from the extended context.
====

== [[_injecting_beans_into_the_binder]] Injecting beans into the binder
== Injecting beans into the binder

With <<configuration-bean-frameworks,compatible frameworks>>,
Hibernate Search supports injecting beans into:
Expand Down Expand Up @@ -252,7 +252,7 @@ include::{sourcedir}/org/hibernate/search/documentation/mapper/orm/bridge/proper
----
====

== [[_incubating_features]] Incubating features
== Incubating features

include::components/incubating-warning.asciidoc[]

Expand Down
@@ -1,7 +1,7 @@
[[mapper-orm-bridge-resolver]]
= [[_bridgeprovider_associate_a_bridge_to_a_given_return_type]] Assigning default bridges with the bridge resolver

== [[_basics]] Basics
== Basics

Both the <<mapper-orm-directfieldmapping-supported-types,`@*Field` annotations>>
and the <<mapper-orm-identifiermapping-supported-types,`@DocumentId` annotation>>
Expand Down
@@ -1,7 +1,7 @@
[[mapper-orm-bridge-routingbridge]]
= [[mapper-orm-bridge-routingkeybridge]] Routing bridge

== [[_basics]] Basics
== Basics

A routing bridge is a pluggable component that defines, at runtime,
whether an entity should be indexed and <<concepts-sharding-routing,to which shard the corresponding indexed document should be routed>>.
Expand Down

0 comments on commit 61b4453

Please sign in to comment.