For performance and relevancy reasons (over 4 million rows in one database), we have always used CONTAINSTABLE for Full-Text Index queries. CONTAINSTABLE has the same functionality as CONTAINS but is used in the FROM clause of a query and offers the added ability to incorporate relevancy to the results. In performance benchmarks from MS, it has shown that CONTAINSTABLE is faster than CONTAINS for very large indexes. Currently, we are using esQueryType.StoredProcedure to perform our CONTAINSTABLE queries, but would like to be able to perform a query similar to the following in ES:
SELECT [IndexedTable].IndexID,
R.[RANK] + IndexedTable.IndexRank As FinalRank,
[IndexedTable].IndexTitle,
[IndexedTable].IndexURL,
[IndexedTable].IndexSummary
FROM [IndexedTable]
INNER JOIN (SELECT [Key], [Rank] FROM CONTAINSTABLE([IndexedTable], IndexTitle, 'mykeyword', 5000)) R
ON [IndexedTable].IndexID = R.[Key]
ORDER BY FinalRank DESC
I know that you have implemented CONTAINS (http://community.entityspaces.net/forums/thread/6421.aspx), but am curious if there is any plans for supporting CONTAINSTABLE?