Я работаю над проектом, который включает в себя следующие модули: активированныеDrupal 8: изменяющего Search API запросов
Drupal ядро 8.2.3 Database Search 8.x-1,0-Beta4 Search API 8.x- 1,0-beta4 Search API Термин Обработчики 8.x-1,0-beta4 Просмотров 8.2.3
у меня есть список НДИ, которые должны быть исключены из результатов поиска на веб-узле поиска. Поиск использует Search API и был настроен с помощью Views.
таблица в базе данных: «search_api_db_default_index» поле я хочу предназначаться это: «нидь»
я не смог HOOK__search_api_query_alter или HOOK_search_api_results_alter стрелять, так что я пытаюсь манипулировать запрос через HOOK_views_query_alter.
я попытался использовать как "addWhere" и "addCondition" методы с помощью следующего синтаксиса:
При использовании метода addCondition, я попытался
$query->addCondition('search_api_db_default_index.nid', $oneBadNid, '<>');
и
$query->addCondition('search_api_db_default_index.nid', $manyBadNids, 'NOT IN');
и при использовании метода addWhere я попытался
$query->addWhere('AND', 'search_api_index_default_index.nid', $oneBadNid, '<>');
и
$query->addWhere('AND', 'search_api_index_default_index.nid', $manyBadNids, 'NOT IN');
Независимо от того, или нет префикса I поля с именем таблицы, поиск всегда приводит к срабатыванию следующего уведомления:
Неизвестного поля в пункте фильтра: ' search_api_db_default_index.nid '.
Похоже, что имя поля всегда завернуто в строку с кодировкой html, представляющую одинарную кавычку, но это происходит как при использовании двойных котировок, так и в одинарных котировках по прилагаемому параметру table.field.
Я даже не уверен, что это не позволяет мне изменить мой запрос, но это единственное, что близко к ошибке, которую я обнаружил в этом процессе. Возможно также, что я просто не должен был таргетировать таблицу так, как написано, но я не нашел никакой документации, направляющей меня на правильную методологию.
Буду признателен за понимание этой проблемы! Благодаря!