Изучите поиск фразC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Изучите поиск фраз

Сообщение Anonymous »

Я использую Examine для поиска в списке пользователей Microsoft Graph. У меня возникли проблемы с возвратом ожидаемых результатов для фразового поиска. Поиск по запросу «Контроллер проекта» возвращает все записи, содержащие «Проект» или «Контроллер». Когда мне нужны только записи, содержащие «Контроллер проекта».
Мой существующий запрос:

Код: Выделить всё

public async Task Search(string query = "")
{
string[] terms = query.Split(' ');

_allUsers = await GetAllUsers();

List matchingUsers = new List();

if (_examineManager.TryGetIndex("ColleaguesIndex", out _colleaguesIndex))
{

var results = _colleaguesIndex.Searcher.CreateQuery(defaultOperation: BooleanOperation.Or)
.GroupedOr(searchFields, query.MultipleCharacterWildcard()).Or()
.GroupedOr(searchFields, query.Escape()).Or()
.GroupedOr(searchFields, terms)
.Execute();

var resultsID = results.Select(r => r.Id);

matchingUsers = _allUsers.Where(u => resultsID.Contains(u.OnPremisesSamAccountName)).ToList();
}

return matchingUsers;
}
При поиске «Контроллер проекта» я получаю 68 результатов. Есть 14 пользователей с должностью = "Контроллеры проекта".
Я попробовал изменить .GroupedOr(searchFields, terms) на .GroupedAnd(searchFields, terms).
Я попробовал изменить .GroupedOr(searchFields, query.Escape()) на .GroupedAnd(searchFields, query.Escape())
В обоих случаях я получаю 0 результатов. Проблема с изменением их на GroupedAnd заключается в том, что я думаю, что он проверяет, ВСЕ ли поля в моем searchFields = "Project Controller".
Я упростил свой запрос в целях тестирования и запустил это:< /p>

Код: Выделить всё

var results = _colleaguesIndex.Searcher.CreateQuery().GroupedOr(searchFields, query.Escape()).Execute();
...и получил 0 результатов. Этого я не могу объяснить. Я ожидал там 14 результатов. Излишне говорить, что я озадачен тем, как добиться фразового поиска по группе полей.

Подробнее здесь: https://stackoverflow.com/questions/788 ... ase-search
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Изучите поиск фраз
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • «Изучите Python на собственном горьком опыте», упражнение 17: дополнительные вопросы.
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Изучите PHP и базу данных (MYSQL) [закрыто]
    Anonymous » » в форуме Php
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Изучите обработку событий в Java
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • «ValueError: слишком много значений для распаковки» в «Изучите Python: трудный путь», пример 13
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»