@Override
public FulltextMatchInfo getFulltextScoredMatchInfo(String fulltextQuery, String indexName, int nthMatch,
Column mainColumn, Model model, Database database) {
String phftname = database.getTable(Model.FULLTEXT_TABLE_NAME).getPhysicalName();
String fullIndexName = "PUBLIC_" + phftname + "_" + indexName;
String nthSuffix = nthMatch == 1 ? "" : String.valueOf(nthMatch);
String tableAlias = "_NXFTTBL" + nthSuffix;
String quotedTableAlias = openQuote() + tableAlias + closeQuote();
FulltextMatchInfo info = new FulltextMatchInfo();
info.joins = Collections.singletonList(
new Join(Join.LEFT,
String.format("NXFT_SEARCH('%s', ?)", fullIndexName), tableAlias,
fulltextQuery,
String.format("%s.KEY", quotedTableAlias),
mainColumn.getFullQuotedName()
));
info.whereExpr = String.format("%s.KEY IS NOT NULL", quotedTableAlias);
info.scoreExpr = "1";
info.scoreAlias = "_NXSCORE" + nthSuffix;
info.scoreCol = new Column(mainColumn.getTable(), null, ColumnType.DOUBLE, null);
return info;
}