. NET Core EF поиск по многим полям - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть таблица со многими текстовыми полями. Что касается пользовательского интерфейса, я просто хочу сделать поиск в стиле Google, где есть только 1 текстовое поле, и я возьму то, что они там вводят, и посмотрю на поиск FREETEXT по различным текстовым полям через linq. Мой вопрос будет лучшим, как это сделать? Буду ли я выполнять один и тот же запрос столько раз, сколько полей я хочу найти по каждому из них, выполняя поиск по этому указанному c полю, а затем объединять все результаты, отличные от этого, или есть более эффективный способ сделать это?

Так что, если пользователь вводит «Бизнес», в моей таблице может быть 5 разных полей, для которых я хочу выполнить поиск в свободном тексте.

1 Ответ

0 голосов
/ 21 февраля 2020

Начните с простого запроса к полю, например:

 var textFilter = "hi";
 dbSet.Where( s => s.Field1.Constains(textFilter) ||
                   s.Field2.Constains(textFilter) ||
                   s.Field3.Constains(textFilter) ||
                   s.Field4.Constains(textFilter) ||
                   s.Field5.Constains(textFilter) ).ToListAsync();

и посмотрите, как эта производительность превышает 500 ~ 1000 строк.

...