freetext(*, 'MySearchString')

Posts   
 
    
johnsmith
User
Posts: 19
Joined: 14-Dec-2004
# Posted on: 08-Mar-2005 14:51:47   

Is there a FieldFullTextSearchPredicate equivalent of SQL's freetext(*, 'MySearchString'), which searches across all the fields in a table's full text index?

Thanks. J.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39859
Joined: 17-Aug-2003
# Posted on: 08-Mar-2005 23:25:10   

You can take the FieldFullTextSearchPredicate sourcecode and create your own class and use it in your queries. Initially the fulltextsearch predicate searches on a field, as that's its purpose.

Full text search the way you want with ranking etc. isn't supported at the moment.

Frans Bouma | Lead developer LLBLGen Pro
Ironman
User
Posts: 1
Joined: 15-Feb-2006
# Posted on: 15-Feb-2006 17:04:13   

Any progress on this issue ? Is ranking now supported ?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39859
Joined: 17-Aug-2003
# Posted on: 15-Feb-2006 18:06:32   

Ranking isn't supported indeed. This is because the set returned by the select with the filter has to be used as a join to be sure ranking data is returned, and that construction isn't supported by llblgen pro.

Frans Bouma | Lead developer LLBLGen Pro
hootie
User
Posts: 6
Joined: 24-Aug-2006
# Posted on: 24-Aug-2006 11:53:23   

Any progress on this issue ? Is ranking supported in 2.0?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39859
Joined: 17-Aug-2003
# Posted on: 24-Aug-2006 12:29:17   

hootie wrote:

Any progress on this issue ? Is ranking supported in 2.0?

No, sorry, ranking isn't supported.

Frans Bouma | Lead developer LLBLGen Pro
hootie
User
Posts: 6
Joined: 24-Aug-2006
# Posted on: 24-Aug-2006 12:41:36   

any idea how to search and display result? This is my current code. I´m a newbe in LLBL so any help or idea would be great! wink


For Each field In user.Fields
                selectFilter.AddWithOr(New FieldFullTextSearchPredicate(field, FullTextSearchOperator.Freetext, find))
        Next
currentCustomer.User.MaxNumberOfItemsToReturn = 50
GridView1.DataSource = currentCustomer.GetMultiUser(True, selectFilter)
GridView1.DataBind()

if my search phrase are "<name> <company>"

I get two users as result. the first one is the one who match <company> the second one is the one who matches both <name> and <company>. I´d like to have them sorted on best hit score....

Walaa avatar
Walaa
Support Team
Posts: 14993
Joined: 21-Aug-2005
# Posted on: 24-Aug-2006 16:40:44   

I guess that would be Ranking which is not supported.

A work around is to have your query in a database view, with a column for the Rank. And then map this query to an entity or a TypedView in LLBLGen Pro.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39859
Joined: 17-Aug-2003
# Posted on: 25-Aug-2006 11:20:37   

Walaa wrote:

I guess that would be Ranking which is not supported.

100% correct simple_smile . The problem with the ranking is that it's fed back to the resultset, however it's cumbersome to make it usable as a field in the resultset or a way to sort on it, as no field is mapped onto the rank field in the resultset.

Frans Bouma | Lead developer LLBLGen Pro
hootie
User
Posts: 6
Joined: 24-Aug-2006
# Posted on: 25-Aug-2006 13:52:50   

Thank you. I´ll try to make a view out of it.

bentos
User
Posts: 146
Joined: 12-Jul-2006
# Posted on: 31-Jan-2009 20:03:14   

Any move on this ranking support? or will it never be supported due to reasons mentioned?

Thanks, Matt

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39859
Joined: 17-Aug-2003
# Posted on: 01-Feb-2009 11:49:22   

bentos wrote:

Any move on this ranking support? or will it never be supported due to reasons mentioned?

Thanks, Matt

v2.6 adds derived tables, which was one of the things which are required to get this working, so with derived tables this should be possible I think, though I've never tested it. As said: for entities etc., it's not really possible as the ranking field isn't in the resultset.

Frans Bouma | Lead developer LLBLGen Pro