Enabling Search and Indexing for Entries
Step 5 of 5
Whenever a Guestbook 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
GuestbookEntryLocalServiceImpl
in theguestbook-service
module’scom.liferay.docs.guestbook.service.impl
package, and add the annotation@Indexable(type = IndexableType.REINDEX)
above the signature for theaddGuestbookEntry
andupdateGuestbookEntry
methods:@Indexable(type = IndexableType.REINDEX) public GuestbookEntry addGuestbookEntry(...) @Indexable(type = IndexableType.REINDEX) public GuestbookEntry updateGuestbookEntry(...)
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 updatedGuestbookEntry
. -
Add the
@Indexable(type = IndexableType.DELETE)
annotation above the signature for thedeleteEntry
method. The indexable typeIndexableType.DELETE
ensures that theGuestbookEntry
is deleted from the index:@Indexable(type = IndexableType.DELETE) public GuestbookEntry deleteGuestbookEntry(...)
-
Use Ctrl-Shift-O to 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 toGuestbookEntryLocalServiceImpl
.
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.