我正在使用.NET CORE和Entity FrameWork。我正在JobList中进行搜索查询,该查询具有键,日期时间,扇区,位置等过滤器。
我的JobList表设置为“全文搜索”,我需要最佳的搜索查询方法。
我为全文搜索创建了一个功能。 JobList中的此功能搜索键,我需要使用关系表进行过滤
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?