Quantcast
Channel: SCN : Discussion List - SAP HANA Developer Center
Viewing all articles
Browse latest Browse all 6412

Fulltext search on multiple tables

$
0
0

Hi,

I'm trying to use fulltext search on multiple tables with oData from UI5.

 

I have the following data model:

 

@Catalog.tableType : #COLUMN    entity Repair {        key repId: String(12) not null;        document : Association[*] to RepDocument on document.repId= repId;        @SearchIndex: { text: { enabled: true, fuzzy: { enabled: true } }        longText: String(2000) not null;    };
@Catalog.tableType : #COLUMN    entity RepDocument{        key id: Integer;        repId: String(12) not null;        repair: Association[1] to Repair on repair.repId= repId;        @SearchIndex: { text: { enabled: true, async: false, textAnalysis: { mode:#SIMPLE } }, fuzzy: { enabled: true } }        data: LargeBinary not null;    };

I want to search on both tables display the "Repair"s, that have a match in the repair itself, or in one of the referenced documents.

Ideally, I would also like to know which documents matched, but that might be a more difficult problem.

 

So i made a view like this:

 

@Search.searchable: true    define view RepDocSearchView as select from Repair {        repId,        @Search: { defaultSearchElement: true}        @EnterpriseSearch.snippets.enabled: true        longText,        @Search: { defaultSearchElement: true}        @EnterpriseSearch.snippets.enabled: true        document.data    }

 

I expose it as oData service (.xsodata).

 

service {  "foo.bar::DataModel.RepDocSearchView" as "RepDoc" key ("repId");
}

And access it with UI5 through an oDataModel, adding a search=.... parameter.

 

But this will return duplicate repairs, if the match is in longText or if several documents' data matches. Doing a group by on the client side seems like a bad solution to me and will make displaying the data with ui5 with paging etc. difficult.

Also, I still won't know which document matched or if the match was in the repair.

 

How can I get the matching repairs without duplicates?

Can I somehow also know and display on the client in ui5, if the repair matched or which of the documents matched?

Maybe this can be done using calculation views?


Viewing all articles
Browse latest Browse all 6412

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>