摘要:系統(tǒng)環(huán)境安裝沒(méi)什么要點(diǎn)只要跟著官方文檔流程一般都能安裝成功并成功運(yùn)行不過(guò)在線上環(huán)境別人還是在用一是項(xiàng)目大了二是的不同版本對(duì)內(nèi)存的要求不一樣而且在之后由于取消了導(dǎo)致很多插件都不能按照以前的方式安裝了比如很常用現(xiàn)在就要通過(guò)運(yùn)行或者其他插件放
系統(tǒng)環(huán)境
Ubuntu16.04, ElasticSearch5.0, JDK1.8ElasticSearch5.0
安裝es5.0沒(méi)什么要點(diǎn),只要跟著官方文檔流程一般都能安裝成功,并成功運(yùn)行.
不過(guò)在線上環(huán)境,別人還是在用es2.4,一是項(xiàng)目大了,二是jdk的不同版本對(duì)內(nèi)存的要求不一樣.
而且在es5.0之后, 由于取消了site-plugin, 導(dǎo)致很多插件都不能按照以前的方式安裝了. 比如很常用elasticSearch-head, 現(xiàn)在就要通過(guò)Grunt運(yùn)行. 或者其他插件放進(jìn)Nginx或者Apache的www目錄運(yùn)行.
安裝后可能出現(xiàn)的小問(wèn)題:
$JAVA_HOME找不到, 但是的確有安裝, 可以設(shè)置/etc/default/elasticsearch 這個(gè)文件里面找到 JAVA_HOME=/usr/local/java/jdk1.8.0_101/jre;
要是環(huán)境內(nèi)存太小就不要安裝, es5.0差不多占了我2.5G的內(nèi)存, 當(dāng)然現(xiàn)在一般人的電腦內(nèi)存都挺多的;
安裝并配置Laravel/Scout在.env文件底部添加這三行
SCOUT_DRIVER=customElasticSearch ELASTICSEARCH_INDEX=box ELASTICSEARCH_HOST=localhost:9200
這三行配置是Scout用于確定你使用什么Engine, 并且和搜索引擎的地址.
讀者可能會(huì)發(fā)現(xiàn)我的Driver是customElasticSearch, 而不是elasticsearch.
因?yàn)楫?dāng)你打開(kāi)ElasticSearchEngine, 找到 performSearch Method,在里面你會(huì)發(fā)現(xiàn)有這么一段代碼
$query = [ "index" => $this->index, "type" => $builder->model->searchableAs(), "body" => [ "query" => [ "filtered" => [ "filter" => $filters, "query" => [ "bool" => [ "must" => $matches ] ], ], ], ], ];
如果你直接運(yùn)行 search Method, 就會(huì)告訴你 filtered已經(jīng)取消了,詳見(jiàn)官網(wǎng)這個(gè)地址.
但是你又不能去直接改package的代碼, 還好Scout提供了自定義Engine.
所以我們新建一個(gè)customElasticSearchEngine, 繼承elasticSearchEngine, 重寫performSearch Method. 在其中,我修改了兩處地方,
這只是演示, 要真使用以后一定要改 $matches[] = [ "match" => [ "字段名" => $builder->query ] ];
$query = [ "index" => $this->index, "type" => $builder->model->searchableAs(), "body" => [ "query" => [ "bool" => [ "filter" => $filters, "must" => $matches, ], ], ], ];使用Scout可能的小坑
如果你在數(shù)據(jù)庫(kù)的表有主鍵自增且名為id的字段, 但是你不希望 elasticSearch使用數(shù)據(jù)表的id來(lái)充當(dāng)es的Document的id, 那么你需要更改model的 $primaryKey并且public $incrementing = false;, 這樣你就能指定當(dāng)前數(shù)據(jù)表的其他值充當(dāng)es的id. 如果es的數(shù)據(jù)有一部分_id是數(shù)據(jù)庫(kù)的id, 而另一部分又是你新指定的, 那么會(huì)導(dǎo)致你的搜索也好,其他操作也好都受影響.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/22018.html
摘要:寫在前面你是否在檢索千百萬(wàn)級(jí)數(shù)據(jù)時(shí)為性能和速度而擔(dān)憂呢,即使優(yōu)化了,創(chuàng)建了數(shù)據(jù)庫(kù)索引,還是不盡如人意呢下面就主要介紹如何集成是法國(guó)初創(chuàng)公司為你提供毫秒級(jí)的數(shù)據(jù)庫(kù)實(shí)時(shí)搜索服務(wù),天下武功無(wú)堅(jiān)不摧,唯快不破。本文基于,其他版本大同小異。 寫在前面 你是否在檢索千百萬(wàn)級(jí)數(shù)據(jù)時(shí)為性能和速度而擔(dān)憂呢,即使優(yōu)化了sql,創(chuàng)建了數(shù)據(jù)庫(kù)索引,還是不盡如人意呢?下面就主要介紹laravel如何集成Algo...
摘要:寫在前面以下簡(jiǎn)稱是一個(gè)實(shí)時(shí)的分布式搜索和分析引擎。在搜索引擎方面,不僅僅有,像另一篇提到的,還有等等,這里不做評(píng)價(jià)和比較,本篇主要介紹中如何使用。首選必須安裝有,請(qǐng)參考。本文基于,其他版本大同小異。 寫在前面 Elasticsearch(以下簡(jiǎn)稱es)是一個(gè)實(shí)時(shí)的分布式搜索和分析引擎。 在搜索引擎方面,不僅僅有Elasticsearch,像另一篇提到的Algolia,還有sphinx、...
閱讀 2552·2023-04-25 19:47
閱讀 3397·2019-08-29 17:18
閱讀 861·2019-08-29 15:26
閱讀 3368·2019-08-29 14:17
閱讀 1145·2019-08-26 13:49
閱讀 3346·2019-08-26 13:22
閱讀 3034·2019-08-26 10:44
閱讀 2702·2019-08-23 16:51