プログラムでノード検索を実行することは可能ですか?多分 NodeSearch または Drupal\search ?
私が得ることができる最も近いものは、プログラムで次のようなことをすることでした:
\Drupal::service('search.index')->clear();
echo \Drupal::service('plugin.manager.search')->getCacheMaxAge();
search_api
を使用したくないことに注意してください。ただし、単にDrupal 8は/search/node?keys=test
への応答として箱から出して提供します。また、 HTTP経由で統合したい。
node_search idを使用して、検索ページエンティティで使用される検索プラグインでこれを実現できます。
use Drupal\search\Entity\SearchPage;
// Default is the node_search page.
$id = \Drupal::service('search.search_page_repository')->getDefaultSearchPage();
$defaultSearchPage = SearchPage::load($id);
$searchPlugin = $defaultSearchPage->getPlugin();
$searchPlugin->setSearch($keywords, $parameters, $arguments);
$searchPlugin->buildResults(); // $searchPlugin->execute() works too if you want raw results