Maison  >  Questions et réponses  >  le corps du texte

Retraduit par : "Syntaxe PHP ElasticSearch"

<p> 我的索引示例</p> <pre class="brush:php;toolbar:false;">{ "_index" : "indexation001", "_type" : "_doc", "_id" : "3", "_version" : 1, "_seq_no" : 242, "_primary_term" : 2, "trouvé" : vrai, "_source" : { "type" : 1, "sub_type" : nul, "utilisateur" : { "identifiant" : 1, "nom" : "tk6z2 gcnouvqmr" }, "utilisateur_éditeur" : [ ], "contenu" : [ { "titre" : "Titre #3", "short_text" : "Texte court de l'article #3", "full_text" : "Article #3 texte intégral", "locale" : "de-DE" } ], "drapeaux" : [ ], "emplacement" : [ ], "date_début" : 1658793600, "date_de_fin" : 1658793600, "_utilisateurs" : [ ] } }</pré> <p>询用户。例如,我的函数是:</p> <pre class="brush:php;toolbar:false;">recherche de fonction statique publique ( chaîne $text = '', int $utilisateur = 0 ): tableau { essayer { $model = new someModelClass(); $champs = [ 'content.titre', 'content.short_text', ]; $result = $model::find()->query( [ 'bool' => [ 'devrait' => [ 'multi_match' => [ 'requête' => $texte, 'champs' => $champs, ], ], 'filtre' => [ [ 'terme' => [ '_users.id' => $utilisateur ] ], [ 'terme' => [ '_users' => [] ] ], ] ], ] )->tout(); renvoie $résultat ; } attraper ( Exception $e ) { lancer une nouvelle exception( $e->getMessage() ); } }</pré> <p>将其转换为SQL应该是这样的:<code>SELECT * FROM 'indexing001' WHERE (content.title LIKE %search% OU content.short_text LIKE %search%) AND (users.id = 1 OR utilisateurs = '')</code> Comment fonctionne ElasticSearch ? 提前感谢!</p>
P粉176203781P粉176203781390 Il y a quelques jours445

répondre à tous(1)je répondrai

  • P粉421119778

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

    Dans ce cas, je recommande d'utiliser le client Elasticsearch-PHP.

    Veuillez utiliser composer pour installer le client approprié.

    Pour la requête correspondante suivante

    curl -XGET 'localhost:9200/my_index/_search' -d '{
        "query" : {
            "match" : {
                "testField" : "abc"
            }
        }
    }'

    Vous pouvez l'interroger dans votre script PHP comme indiqué ci-dessous

    $params = [
        'index' => 'my_index',
        'body'  => [
            'query' => [
                'match' => [
                    'testField' => 'abc'
                ]
            ]
        ]
    ];
    
    $results = $client->search($params);
    

    Voir plus d'actions ici.

    répondre
    0
  • Annulerrépondre