MsSql函数和位置

时间:2018-09-13 11:14:25

标签: sql sql-server entity-framework

我正在使用.NET CORE和Entity FrameWork。我正在JobList中进行搜索查询,该查询具有键,日期时间,扇区,位置等过滤器。

我的JobList表设置为“全文搜索”,我需要最佳的搜索查询方法。

我为全文搜索创建了一个功能。 JobList中的此功能搜索键,我需要使用关系表进行过滤

enter image description here

ALTER FUNCTION F_SearchQuery ( @query nvarchar(3995),@offset integer,@next integer ) RETURNS @List TABLE(Id integer) AS 
    BEGIN 
        DECLARE @string nvarchar(4000)
        SET @string = '"'+@query +'*"'
        INSERT INTO @List(Id) SELECT FT_TBL.Id
                                FROM PostJob AS FT_TBL   
                                INNER JOIN  
                                CONTAINSTABLE (PostJob, (Title,SearchTags,Info),  @string) AS KEY_TBL  
                                ON FT_TBL.Id = KEY_TBL.[KEY]  
                                ORDER BY KEY_TBL.RANK DESC  
                                OFFSET @offset ROWS FETCH NEXT @next ROWS ONLY

        RETURN
    END 

我的问题是:

SELECT * FROM F_SearchQuery('software',0,10) 
INNER JOIN JobLocation J on J.JobId = JobId
INNER JOIN JobFeatures F on F.JobId = JobId
WHERE 
J.LocationId IN (filter locations) AND
J.FeatureId IN (filter features)

此查询首先执行并从F_SearchQuery()获取表,然后使用where关键字进行过滤?

我需要使用SQL函数或Entity Framework IQuerable方法进行搜索查询+过滤relatioshios表。

搜索查询的最佳方式/方法是什么?

我的另一个问题:Entitiy Framework How to improve to perfom on querying many relationship tables?

0 个答案:

没有答案