検索

ホームページ  >  に質問  >  本文

「PHP 構文 ElasticSearch」として再翻訳

<p>私は ElasticSearch の新しい手、对蟥询の動作原理はまだわかっていません... 私のインデックスの例</p> <pre class="brush:php;toolbar:false;">{ 「_インデックス」 : "インデックス001"、 「_タイプ」 : "_doc"、 「_id」 : "3"、 「_バージョン」 :1、 「_seq_no」 :242、 「_primary_term」 :2、 「見つかった」 : 真実、 「_ソース」 : { 「タイプ」 :1、 「サブタイプ」 : ヌル、 「ユーザー」 : { 「ID」 :1、 「名前」 : "tk6z2 gcnouvqmr" }、 「エディターユーザー」 : [ ]、 「コンテンツ」 : [ { 「タイトル」 : 「タイトル #3」、 「ショートテキスト」 : "記事 #3 短いテキスト"、 「全文」 : "記事 #3 全文"、 「ロケール」 :「脱DE」 } ]、 「フラグ」 : [ ]、 「場所」 : [ ]、 「開始日」 : 1658793600、 「終了日」 : 1658793600、 「_users」 : [ ] } }</pre> <p>私たちは、<code>content.title</code>と<code>content.short_text</code>を一致させて、<code>_users</code>フィールド監査ユーザーを介してテキストをテストすることを考えています。例,我的関数数是:</p> <pre class="brush:php;toolbar:false;">パブリック静的関数検索( 文字列 $text = '', int $user = 0 ): 配列 { 試す { $model = 新しい someModelClass(); $フィールド = [ 'コンテンツ.タイトル', 'content.short_text', ]; $result = $model::find()->query( [ 'ブール' => [ 'べき' => [ 'multi_match' => [ 'クエリ' => $テキスト、 'フィールド' => $フィールド、 ]、 ]、 'フィルター' => [ [ '用語' => [ '_users.id' => $ユーザー ] ]、 [ '用語' => [ '_users' => [] ] ]、 】 ]、 ] )->all(); $result を返します。 } catch (例外 $e ) { throw new Exception( $e->getMessage() ); } }</pre> <p>これを SQL に変更します:<code>SELECT * FROM 'indexing001' WHERE (content.title LIKE %search% OR content.short_text LIKE %search%) AND (users.id = 1 OR)ユーザー = '')</code> どのようにElasticSearch查询中编写它にありますか? </p> 前感谢!
P粉176203781P粉176203781456日前544

全員に返信(1)返信します

  • P粉421119778

    P粉4211197782023-08-29 00:46:01

    この場合、Elasticsearch-PHP クライアントを使用することをお勧めします。

    適切なクライアントを インストールするには、composer を使用してください。

    次の一致クエリの場合

    リーリー

    以下に示すように、PHP スクリプトでクエリを実行できます

    リーリー

    その他のアクションについては、こちらをご覧ください

    返事
    0
  • キャンセル返事