0

全文検索を提供する必要がある RSS フィードに取り組んでいます。いくつかのボックスから検索し、RSS として結果を取得します。node_search と do_search を機能させようとしてきましたが、何かが欠けています...でも、何ですか?

私が知る限り、 $find = node_search('search', 'type:article'); のようなものです。type = 'article' であるすべての一致するノードを含む結果が得られるはずです。しかし、キーワード/検索用語を指定するにはどうすればよいですか?

私は何が欠けていますか?

4

2 に答える 2

0

OpenSearch モジュールは検索結果を RSS として公開するため、自分でコーディングする必要はありません。

特殊なフォームが必要な場合は、フォームの処理後に OpenSearch の結果にリダイレクトするだけです。

補遺: 本当に自分でやりたい場合は、次のsearch_dataように使用できます。

<?php
$data = search_data('your searchterms here');

これはノードを検索します ( のデフォルトの 2 番目のパラメーターとしてsearch_data) が、hook_search を実装したユーザーやその他のものを検索するためにも使用できます。

また、search_data名前に反して、実際にはフォーマットされた検索結果を返します。生の検索結果が必要な場合は、直接呼び出す か、 . 例:hook_searchdo_search

<?php
$results = module_invoke('node', 'search', 'your searchterms here');
$data = do_search($query, 'node');

違いは、フックを呼び出すと、より多くのノード関連データが得られることです (ジェネリックに加えて、ノード固有の検索コードを実行するためですdo_search(node.module のhook_search実装は、実際の作業を完了するために do_search を呼び出します))。ノード検索は、検索設定で設定した重みを尊重するため、より正確な検索が可能になります。トレードオフは、検索クエリが遅くなることです。

于 2009-06-08T09:12:35.483 に答える
0

使用できる key:value である必要があります。また、"" も使用できます。

hook_search

フィル

于 2009-06-08T09:34:43.083 に答える