Drupalモジュールでプログラムでapachesolrクエリを作成していて、いくつかの側面で成功していますが、他の側面ではまだ苦労しています。
これまでのところ、次のコードを使用して、特定のテキストを検索し、フィルタリングする用語に基づいて結果を制限できるクエリを作成することができました。
$subquery_region->addFilter('tid', $term->tid);
$query->addFilterSubQuery($subquery_region, 'OR', 'AND');
次に達成したいのは、ノードの特定のフィールド内の特定のテキストを検索するためのフィルターを追加することで、検索をさらに絞り込むことができるようにすることです。誰かがこれを行うことができましたか?
私はオンラインで調査しており、メインの検索クエリに直接フィルターを追加するなど、さまざまな方法を試しました。
$query->addParam('fl', 'ss_my_field');
$query->addFilter("ss_my_field", "field_substring_to_search_for");
それをサブクエリに分割してメインの検索クエリに追加するだけでなく
$subquery_test = apachesolr_drupal_query("Test");
$subquery_test->addParam('fl', 'ss_my_field');
$subquery_test->addFilter("ss_my_field", "field_substring_to_search_for");
$query->addFilterSubQuery($subquery_test, 'OR', 'AND');
しかし、これらはどれも機能していません。フィルタとして追加しているフィールドにサブストリングが存在し、インデックスが付けられていることがわかっていても、空のセットが返されます。apachesorl viewsモジュールを介して、検索インデックスにそのフィールドが入力されており、サブストリングが存在することを確認しました。
構文またはクエリの作成方法に問題がありますか?
特定のフィールド内のテキストを検索するためのフィルターを追加する方法を知っている場合は、共有してください!addFilter関数を使用しても実行できない場合がありますが、これまでに試したのはそれだけです。ありがとう!