Retraduit par : "Syntaxe PHP ElasticSearch"
P粉176203781
2023-08-28 15:43:18
<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>
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
Vous pouvez l'interroger dans votre script PHP comme indiqué ci-dessous
Voir plus d'actions ici.