Laravel5.3+Scout+ElasticSearch5.0
系统环境
Ubuntu16.04, ElasticSearch5.0, JDK1.8
ElasticSearch5.0
安装es5.0没什么要点,只要跟着官方文档流程一般都能安装成功,并成功运行.
不过在线上环境,别人还是在用es2.4,一是项目大了,二是jdk的不同版本对内存的要求不一样.
而且在es5.0之后, 由于取消了site-plugin, 导致很多插件都不能按照以前的方式安装了. 比如很常用elasticSearch-head, 现在就要通过Grunt运行. 或者其他插件放进Nginx或者Apache的www目录运行.
安装后可能出现的小问题:
$JAVA_HOME找不到, 但是的确有安装, 可以设置/etc/default/elasticsearch 这个文件里面找到 JAVA_HOME=/usr/local/java/jdk1.8.0_101/jre;
要是环境内存太小就不要安装, es5.0差不多占了我2.5G的内存, 当然现在一般人的电脑内存都挺多的;
安装并配置Laravel/Scout
在.env文件底部添加这三行
SCOUT_DRIVER=customElasticSearch ELASTICSEARCH_INDEX=box ELASTICSEARCH_HOST=localhost:9200
这三行配置是Scout用于确定你使用什么Engine, 并且和搜索引擎的地址.
读者可能会发现我的Driver是customElasticSearch, 而不是elasticsearch.
因为当你打开ElasticSearchEngine, 找到 performSearch Method,在里面你会发现有这么一段代码
$query = [ 'index' => $this->index, 'type' => $builder->model->searchableAs(), 'body' => [ 'query' => [ 'filtered' => [ 'filter' => $filters, 'query' => [ 'bool' => [ 'must' => $matches ] ], ], ], ], ];
如果你直接运行 search Method, 就会告诉你 filtered已经取消了,详见官网这个地址.
但是你又不能去直接改package的代码, 还好Scout提供了自定义Engine.
所以我们新建一个customElasticSearchEngine, 继承elasticSearchEngine, 重写performSearch Method. 在其中,我修改了两处地方,
这只是演示, 要真使用以后一定要改 $matches[] = [ 'match' => [ '字段名' => $builder->query ] ];
$query = [ 'index' => $this->index, 'type' => $builder->model->searchableAs(), 'body' => [ 'query' => [ 'bool' => [ 'filter' => $filters, 'must' => $matches, ], ], ], ];
使用Scout可能的小坑
如果你在数据库的表有主键自增且名为id的字段, 但是你不希望 elasticSearch使用数据表的id来充当es的Document的id, 那么你需要更改model的 $primaryKey并且public $incrementing = false;, 这样你就能指定当前数据表的其他值充当es的id. 如果es的数据有一部分_id是数据库的id, 而另一部分又是你新指定的, 那么会导致你的搜索也好,其他操作也好都受影响.

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide de la bordure de tableau en HTML. Nous discutons ici de plusieurs façons de définir une bordure de tableau avec des exemples de bordure de tableau en HTML.

Guide de la marge HTML gauche. Nous discutons ici d'un bref aperçu de la marge gauche HTML et de ses exemples ainsi que de son implémentation de code.

Ceci est un guide des tableaux imbriqués en HTML. Nous discutons ici de la façon de créer un tableau dans le tableau ainsi que des exemples respectifs.

Guide de mise en page des tableaux HTML. Nous discutons ici des valeurs de la mise en page des tableaux HTML ainsi que des exemples et des résultats en détail.

Guide de l'espace réservé de saisie HTML. Nous discutons ici des exemples d'espace réservé d'entrée HTML ainsi que des codes et des sorties.

Guide de la liste ordonnée HTML. Ici, nous discutons également de l'introduction de la liste et des types HTML ordonnés ainsi que de leur exemple respectivement.

Guide pour déplacer du texte en HTML. Nous discutons ici d'une introduction, du fonctionnement des balises de sélection avec la syntaxe et des exemples à implémenter.

Guide du bouton HTML onclick. Nous discutons ici de leur introduction, de leur fonctionnement, des exemples et de l'événement onclick dans divers événements respectivement.
