Enabling Search and Indexing for Entries
Step 5 of 5
Whenever an Entry is added, updated, or deleted, the corresponding document
should also be updated or deleted. A minor update to each of the addEntry
,
updateEntry
, and deleteEntry
service methods for Entries is all it takes.
Follow these steps to update the methods:
-
Open
EntryLocalServiceImpl
in theguestbook-service
module’scom.liferay.docs.guestbook.service.impl
package, and add the annotation@Indexable(type = IndexableType.REINDEX)
above the signature for theaddEntry
andupdateEntry
methods:@Indexable(type = IndexableType.REINDEX) public Entry addEntry(...) @Indexable(type = IndexableType.REINDEX) public Entry updateEntry(...)
The
@Indexable
annotation indicates that an index update is required following method execution. The indexing classes control exactly how the indexing happens. Setting the@Indexable
annotation’s type toIndexableType.REINDEX
updates the indexed document that corresponds to the updated Entry. -
Add the
@Indexable(type = IndexableType.DELETE)
annotation above the signature for thedeleteEntry
method. The indexable typeIndexableType.DELETE
ensures that the Entry is deleted from the index:@Indexable(type = IndexableType.DELETE) public Entry deleteEntry(...)
-
Add the required imports:
import com.liferay.portal.kernel.search.Indexable; import com.liferay.portal.kernel.search.IndexableType;
Save the file.
-
In the Gradle Tasks pane on the right-hand side of Liferay Dev Studio DXP, double-click
buildService
inguestbook-service
→build
. This re-runs Service Builder to incorporate your changes toEntryLocalServiceImpl
.
Guestbooks and their Entries now have search and indexing support in the back-end. Next, you’ll enable search in the Guestbook portlet’s front-end.