ElasticSearch5.0
es5.0을 설치하는 데 아무런 의미가 없습니다. 공식 문서 프로세스만 따르면 일반적으로 성공적으로 설치하고 실행할 수 있습니다. 🎜>그러나 온라인 환경에서 다른 사람들은 여전히 es2.4를 사용할 때 첫째로 프로젝트가 더 크고 둘째로 jdk 버전마다 메모리 요구 사항이 다릅니다.
그리고 es5.0 이후에는 취소로 인해 site-plugin, 많은 플러그인이 이전을 따를 수 없습니다. 예를 들어 elasticSearch-head는 매우 일반적으로 사용되며 이제 Grunt를 통해 실행하거나 다른 플러그인을 Nginx 또는 Apache의 www 디렉토리에 넣어 실행해야 합니다.
Laravel/Scout 설치 및 구성
다음 세 줄을 추가하세요. .env 파일의 맨 아래 SCOUT_DRIVER=customElasticSearchELASTICSEARCH_INDEX=boxELASTICSEARCH_HOST=localhost:9200
ElasticSearchEngine을 열고 PerformSearch 메서드를 찾으면 내부에서 이 코드 조각을 찾을 수 있기 때문입니다
$query = [ 'index' => $this->index, 'type' => $builder->model->searchableAs(), 'body' => [ 'query' => [ 'filtered' => [ 'filter' => $filters, 'query' => [ 'bool' => [ 'must' => $matches ] ], ], ], ], ];search Method를 직접 실행하면 필터링이 취소되었다는 메시지가 나옵니다. 자세한 내용은 공식 홈페이지 주소를 참조하세요.
하지만 다행히 Scout에서는 커스텀 엔진을 제공합니다. .
这只是演示, 要真使用以后一定要改$matches[] = [ 'match' => [ '字段名' => $builder->query ] ];
$query = [ 'index' => $this->index, 'type' => $builder->model->searchableAs(), 'body' => [ 'query' => [ 'bool' => [ 'filter' => $filters, 'must' => $matches, ], ], ], ];
사용 시 발생할 수 있는 함정 두 군데를 수정했습니다. Scout
데이터베이스의 테이블에 자동 증가 기본 키가 있는 id라는 필드가 있지만 그렇지 않은 경우elasticSearch에서 해당 필드의 ID를 사용하려는 경우 데이터 테이블을 es 문서의 ID로 사용하려면 model 및 의 $primaryKey를 변경해야 합니다. public $incrementing = false;, 현재 데이터 테이블의 다른 값을 지정하여 es의 ID로 사용할 수 있습니다. es 데이터 _id의 일부가 데이터베이스id, 나머지 부분은 귀하가 새로 지정하며, 이는 검색 및 기타 작업에 영향을 미칩니다.