2.4. Uploaded Files Content Search
Now we need to provide the possibility of file upload for each book publication and to add uploaded files to the BookPublication
browse screen.
Let us customize BookPublication
entity. Firstly we add a new file
attribute which is a many-to-one ASSOCIATION to FileDescriptor
entity. FileDescriptor
is the descriptor of the uploaded file (not to be confused with java.io.FileDescriptor
) that enables referencing the file from the data model objects. When saving the changes, select all screens and related views suggested by the Studio to append new attribute.
Generate new DB scripts, update database and restart application server. When DB is recreated, full text search becomes disabled by default. Check the Value checkbox again in JMX Console, reindex all files, process indexing queue, log out and log in back.
As far as we have added the new attribute, the table of publications on BookPublication
browser screen now contains one more column: File. To fill it in, open any line for editing, upload text file using the new upload field and click OK. By default CUBA supports RTF
, TXT
, DOC
, DOCX
, XLS
, XSLX
, ODT
, ODS
, and PDF
file formats.
New files appeared in the table. The appearance of new column can be adjusted.
Open the JMX Console screen, open the app-core.fts:type=FtsManager
JMX bean and invoke sequentially reindexAll()
and processQueue()
to re-index the existing instances in the database and files according to the new search configuration. All new and changed data will be indexed automatically with a delay depending on the scheduled task interval, i.e. not longer than 30 seconds.
As a result, Full text search will now output all the entries including external files contents.
You can find more information on FileStorageAPI
and FileDescriptor
in corresponding chapters of the main manual.