다음과 같이 재번역됨: "PHP 구문 ElasticSearch"
P粉176203781
2023-08-28 15:43:18
<p>저는 ElasticSearch의 새로운 작업을 수행하는 데 불편을 겪고 있습니다...
내 사랑은 옳습니다</p>
<pre class="brush:php;toolbar:false;">{
"_index" : "indexing001",
"_type" : "_doc",
"_id" : "3",
"_버전" : 1,
"_seq_no" : 242,
"_primary_term" : 2,
"발견" : 진실,
"_출처" : {
"유형" : 1,
"하위_유형" : 없는,
"사용자" : {
"아이디" : 1,
"이름" : "tk6z2 gcnouvqmr"
},
"editor_user" : [ ],
"콘텐츠" : [
{
"제목" : "제목 #3",
"짧은_텍스트" : "제3조 짧은 텍스트",
"전체_텍스트" : "제3조 전문",
"로케일" : "드-DE"
}
],
"플래그" : [ ],
"위치" : [ ],
"시작_날짜" : 1658793600,
"종료일" : 1658793600,
"_사용자" : [ ]
}
}</pre>
<p>我想查询文本以匹配字段<code>content.title</code>및<code>content.short_text</code>,통통한<code>_users</code>字段查询用户。例如,나의 函数是:</p>
<pre class="brush:php;toolbar:false;">공개 정적 함수 검색(
문자열 $text = '',
int $사용자 = 0
): 배열
{
노력하다 {
$model = 새로운 someModelClass();
$필드 = [
'콘텐츠.제목',
'content.short_text',
];
$result = $model::find()->query( [
'부울' => [
'해야 한다' => [
'다중_일치' => [
'쿼리' => $텍스트,
'필드' => $ 필드,
],
],
'필터' => [
[ '용어' => [ '_users.id' => $사용자 ] ],
[ '용어' => [ '_users' => [] ] ],
]
],
] )->all();
$결과를 반환합니다.
}
잡기 ( 예외 $e ) {
새로운 예외 발생( $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>
이 경우에는 Elasticsearch-PHP클라이언트를 사용하는 것이 좋습니다.
작곡기를 사용하여 적절한 클라이언트를 설치 하세요.
다음 일치 쿼리의 경우
으아악아래와 같이 PHP 스크립트에서 쿼리할 수 있습니다
으아악더 많은 작업을 여기에서 확인하세요.