国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ElasticSearch+Neo4j+ElasticSearch Head實(shí)現(xiàn)全文檢索應(yīng)用

這篇具有很好參考價(jià)值的文章主要介紹了ElasticSearch+Neo4j+ElasticSearch Head實(shí)現(xiàn)全文檢索應(yīng)用。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文主要闡述利用ES、知識(shí)圖譜(Neo4j)實(shí)現(xiàn)全文檢索,并利用ElasticSearch Head開源項(xiàng)目進(jìn)行全文檢索測試。實(shí)驗(yàn)在圖譜的幫助下如何開展全文檢索功能,為后續(xù)的復(fù)雜查詢或語義檢索做準(zhǔn)備。
一、運(yùn)行環(huán)境
1.Linux 7.5
2.JDK 1.8.0_191
3.ElasticSearch 7.17.4,注意用ES自帶的jdk,因?yàn)檫@個(gè)版本的ES需要JDK11以上,配置見第二條內(nèi)容。
4.Neo4j 3.5.28
5.Elasticsearch-head: GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
二、ES和Neo4j的安裝配置:
詳細(xì)的安裝配置本文略去,主要給出關(guān)鍵配置信息,可以參考其他安裝配置,如大家需要,再咨詢我。
1. 配置ES--java11環(huán)境:打開ES的bin下面elasticsearch和elasticsearch-cli文件,在最前面添加如下信息,將默認(rèn)jdk調(diào)整為es自帶的jdk,這樣不改變整個(gè)系統(tǒng)的java環(huán)境,只是在運(yùn)行ES時(shí)用指定的java環(huán)境。
#配置自己的jdk11
export JAVA_HOME=/home/es/elasticsearch-7.17.4/jdk
export PATH=$JAVA_HOME/bin:$PATH
2.配置ES--在config目錄,打開 elasticsearch.yml,配置信息如下
node.master:true 或者?node.name: node-1
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
#允許各種http請求
http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers: Content-Type,Accept,Authorization,x-requested-with
#集群節(jié)點(diǎn)存儲(chǔ)空間大小限制解決的配置選項(xiàng)
cluster.routing.allocation.disk.threshold_enabled: false
cluster.initial_master_nodes: ["node-1"]
#配置X-Pack,401問題解決的配置選項(xiàng)
xpack.security.enabled: false
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
3.啟動(dòng)ElasticSearch
前面配置完畢后,基本可以啟動(dòng)ES了,進(jìn)入bin目錄,運(yùn)行 elasticsearch 或者 elasticsearch -d,后者表示后臺(tái)啟動(dòng),如果出現(xiàn)如下錯(cuò)誤,請安裝要求配置。
錯(cuò)誤1 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
root 用戶:vi /etc/sysctl.conf 添加 vm.max_map_count=262144:保存退出之后,執(zhí)行命令 sysctl -p
錯(cuò)誤2max number of threads is too low
root 用戶:vi /etc/security/limits.conf 在文件最后添加
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
錯(cuò)誤3max number of threads [1024] for user [elasticsearch] is too low, increase to at least [4096],該錯(cuò)誤對應(yīng)的配置文件,默認(rèn)配置好了, 不需要單獨(dú)配置。
vi /etc/security/limits.d/90-nproc.conf 改為4096
修改完記得退出es用戶,再執(zhí)行啟動(dòng)命令。
cp -r /home/hadoop/app/elasticsearch-7.17.4 /home/es/elasticsearch-7.17.4
4.查看ES運(yùn)行情況(瀏覽器)
http://192.168.107.128:9200/ 查看可用情況
http://192.168.107.128:9200/_cat/nodes?v 查看節(jié)點(diǎn)情況
http://192.168.107.128:9200/_cat/health?v 查看健康狀態(tài)
http://192.168.107.128:9200/_cat/indices?v?查看所有索引
5.配置訪問ES的用戶密碼,主要用于配置ElasticSearch-head和Kibana客戶端訪問ES的用戶密碼。
執(zhí)行命令:elasticsearch-setup-passwords interactive
user:elastic/kibana_system/其他用戶等
pwd:eses456
其他用戶的密碼同上。
6.安裝plugin
安裝IK分詞器:elasticsearch-plugin install analysis-icu
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.4/elasticsearch-analysis-ik-7.17.4.zip
查看安裝的plugin elasticsearch-plugin list
刪除pluginelasticsearch-plugin remove analysis-icu
7.配置用戶自定義配置詞典,進(jìn)入es的config下,進(jìn)入analysis-ik,打開IKAnalyzer.cfg.xml,配置自定義詞典信息如下:
<entry key="ext_dict">userdefine.dic</entry>
userdefine.dic配置如下信息,重啟ES后就會(huì)自動(dòng)整體分詞。
美團(tuán)
地層
儲(chǔ)層
8.配置Neo4j- elasticsearch
下載neo4j-elasticsearch-3.5.6.jar,放在neo4j的plugin目錄下。
配置neo4j,neo4j.conf
elasticsearch.host_name= http://192.168.107.128:9200
elasticsearch.index_spec=result:result( name),resultsummary:resultSummary(abstract,name),resultkeys:resultKeys(name)? #這里的第一個(gè)result表示節(jié)點(diǎn)標(biāo)簽,第二個(gè)result表示ES中的result索引名稱,name表示將result節(jié)點(diǎn)中name屬性值。 多個(gè)索引關(guān)聯(lián)見下一行的示例(中間逗號(hào)分隔)。
9.Elasticsearch-head配置:下載完成后進(jìn)入根目錄,啟動(dòng)前端項(xiàng)目后直接運(yùn)行(npm run start)。
elasticsearch-head主要是驗(yàn)證在Neo4j插入新的節(jié)點(diǎn)和關(guān)系時(shí),數(shù)據(jù)同時(shí)同步到ES中,并測試是否提供全文檢索等。
問題: elasticsearch- head無法連接ES的問題及解決方案
打開es配置文件,看看是否有以下幾行配置信息。即可解決。
#允許跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
#允許各種http請求
http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers: Content-Type,Accept,Authorization,x-requested-with
#401問題解決的配置選項(xiàng)
xpack.security.enabled: false
#集群節(jié)點(diǎn)存儲(chǔ)空間大小限制解決的配置選項(xiàng)
cluster.routing.allocation.disk.threshold_enabled: false
三、全文檢索應(yīng)用實(shí)踐
(一)直接在控制臺(tái)下,運(yùn)行測試Neo4j或Neo4j和ES配置是否正常,具體如下:
查詢(neo4j):
curl -X POST http: / /192.168.107.128:7474/db /data/cypher -H 'authorization: Basic bmVvNGo6bmVvbmVv' -H 'content-type: application/json' -d '{ "query" : "MATCH (n:result{name:'張三') Return n" }'
查詢(es):
curl -X GET 'http:// 192.168.107.128 :9200/result/_search?pretty='
創(chuàng)建新節(jié)點(diǎn)(neo4j+es):
curl -X POST http: / /192.168.107.128:7474/db /data/cypher -H 'authorization: Basic bmVvNGo6bmVvbmVv' -H 'content-type: application/json' -d '{ "query" : "CREATE (n:result { name: { name1 }}) RETURN n" , "params" : { "name1" : "測試20221218"? } }'
(二)利用apoc調(diào)用ES(官方- ElasticSearch - APOC Extended Documentation)
1. 查看es狀態(tài):? call ?apoc . es . stats ( "192.168.107.128" )
2.查詢檢索:
CALL?apoc.es.getRaw("192.168.107.128",'resultsummary/_search?',null)?YIELD?value?
UNWIND?value.hits.hits?as?hits
RETURN?hits['_source']?LIMIT?100
3.查詢,關(guān)鍵詞過濾-dsl query
CALL?apoc.es.getRaw("192.168.107.128","resultsummary/_search?",{
??query:?{match_phrase:{name:?"處理"}}
})
YIELD?value?
UNWIND?value.hits.hits?as?hits
RETURN?hits['_source']?LIMIT?100
4.查找resultsummary索引中name包含處理的節(jié)點(diǎn),并返回符合查詢的title列表
CALL?apoc.es.getRaw("192.168.107.128","resultsummary/_search?",{
??query:?{match_phrase:{name:?"處理"}}
})
YIELD?value?
UNWIND?value.hits.hits?as?hits
UNWIND?hits['_source']['name']?as?name_list?RETURN?name_list
5.查找 knowledgegraph索引中title包含"python"的節(jié)點(diǎn),并返回符合查詢的title列表,并查詢與包含"python"的result節(jié)點(diǎn)相連的一度ACTED_IN邊
CALL?apoc.es.getRaw("192.168.107.128","knowledgegraph/_search?",{
??query:?{match_phrase:{title:?"python"}}
})
YIELD?value?
UNWIND?value.hits.hits?as?hits
with?collect(hits['_source']['title'])?as?title_list?
MATCH?p=(m:result)-[r:ACTED_IN]-(n)?where?m.name?in?title_list?RETURN?p
四、Neo4j自帶的全文檢索插件應(yīng)用。
1.查看分詞器: call ?db . index . fulltext . listAvailableAnalyzers
2.創(chuàng)建索引: CALL ?db . index . fulltext . createNodeIndex ( "summaryFullIndex" ,[ "resultSummary" ],[ "name" ],? { ?analyzer :? "cjk" })
3.使用索引:
查找包含儲(chǔ)層評價(jià)的報(bào)告
CALL?db.index.fulltext.queryNodes("summaryFullIndex","儲(chǔ)層評價(jià)")?YIELD?node,?score
RETURN?node,?score
查找即包含綜合,又做過核磁或密度的數(shù)據(jù)
CALL?db.index.fulltext.queryNodes("summaryFullIndex","綜合")?YIELD?node
where?node.name?contains?"合成"??
where?node.name?contains?"密度"?
return?node??
order?by?node.name??
skip?0
limit?10
4.刪除全文索引
call?db.index.fulltext.drop("summaryFullIndex")

文章來源地址http://www.zghlxwxcb.cn/news/detail-485750.html

到了這里,關(guān)于ElasticSearch+Neo4j+ElasticSearch Head實(shí)現(xiàn)全文檢索應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Neo4j是什么,為什么需要Neo4j,Neo4j的優(yōu)勢和應(yīng)用場景

    Neo4j是什么,為什么需要Neo4j,Neo4j的優(yōu)勢和應(yīng)用場景

    當(dāng)我們處理非常復(fù)雜的數(shù)據(jù)時(shí),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫可能會(huì)無法勝任。而在這種情況下,一個(gè)基于圖形數(shù)據(jù)模型的數(shù)據(jù)庫,如Neo4j,可能會(huì)是更好的選擇。Neo4j是一個(gè)高性能、面向?qū)ο蟮膱D形數(shù)據(jù)庫,它是為存儲(chǔ)和查詢大規(guī)模圖形數(shù)據(jù)而設(shè)計(jì)的。 在Neo4j中,數(shù)據(jù)被組織成一系列

    2024年02月08日
    瀏覽(35)
  • Neo4j:入門基礎(chǔ)(二)~ 數(shù)據(jù)導(dǎo)入Neo4J
                    
            
RDF導(dǎo)入neo4j數(shù)據(jù)庫

    Neo4j:入門基礎(chǔ)(二)~ 數(shù)據(jù)導(dǎo)入Neo4J RDF導(dǎo)入neo4j數(shù)據(jù)庫

    neo4j導(dǎo)入數(shù)據(jù)的方式有以下幾種: Cypher create 語句,為每一條數(shù)據(jù)寫一個(gè)create Cypher load csv 語句,將數(shù)據(jù)轉(zhuǎn)成CSV格式,通過LOAD CSV讀取數(shù)據(jù)。 neo4j-admin import導(dǎo)入 官方提供的Java API - BatchInserter 大牛編寫的 batch-import 工具 neo4j-apoc load.csv + apoc.load.relationship 針對實(shí)際業(yè)務(wù)場景,定制

    2023年04月24日
    瀏覽(33)
  • 【neo4j】neo4j的安裝與使用

    【neo4j】neo4j的安裝與使用

    https://www.oracle.com/java/technologies/downloads/ 按照步驟安裝即可 配置環(huán)境變量 在系統(tǒng)變量中添加 path變量中添加 https://neo4j.com/deployment-center/ 下載后,在指定位置解壓縮 與java相同,也需要設(shè)置環(huán)境變量。 終端輸入neo4j.bat console 成功

    2024年02月03日
    瀏覽(31)
  • Neo4j:入門基礎(chǔ)(二)~ 數(shù)據(jù)導(dǎo)入Neo4J

    Neo4j:入門基礎(chǔ)(二)~ 數(shù)據(jù)導(dǎo)入Neo4J

    neo4j導(dǎo)入數(shù)據(jù)的方式有以下幾種: Cypher create 語句,為每一條數(shù)據(jù)寫一個(gè)create Cypher load csv 語句,將數(shù)據(jù)轉(zhuǎn)成CSV格式,通過LOAD CSV讀取數(shù)據(jù)。 neo4j-admin import導(dǎo)入 官方提供的Java API - BatchInserter 大牛編寫的 batch-import 工具 neo4j-apoc load.csv + apoc.load.relationship 針對實(shí)際業(yè)務(wù)場景,定制

    2024年02月09日
    瀏覽(28)
  • spring boot集成neo4j實(shí)現(xiàn)簡單的知識(shí)圖譜

    spring boot集成neo4j實(shí)現(xiàn)簡單的知識(shí)圖譜

    隨著社交、電商、金融、零售、物聯(lián)網(wǎng)等行業(yè)的快速發(fā)展,現(xiàn)實(shí)社會(huì)織起了了一張龐大而復(fù)雜的關(guān)系網(wǎng),傳統(tǒng)數(shù)據(jù)庫很難處理關(guān)系運(yùn)算。大數(shù)據(jù)行業(yè)需要處理的數(shù)據(jù)之間的關(guān)系隨數(shù)據(jù)量呈幾何級(jí)數(shù)增長,急需一種支持海量復(fù)雜數(shù)據(jù)關(guān)系運(yùn)算的數(shù)據(jù)庫,圖數(shù)據(jù)庫應(yīng)運(yùn)而生。 世界

    2024年03月12日
    瀏覽(26)
  • vue+neo4j(neo4j desktop安裝和使用)

    vue+neo4j(neo4j desktop安裝和使用)

    官網(wǎng)下載安裝 官方下載鏈接:https://neo4j.com/download/ 下載后會(huì)跳轉(zhuǎn)到 Activation Key 頁面,已經(jīng)自動(dòng)生成好密鑰,復(fù)制后,粘貼到 Neo4j Deskto 的 Software Keys 輸入框內(nèi)即可完成激活 官方安裝使用手冊 https://neo4j.com/developer/neo4j-desktop/ 軟件主界面,默認(rèn)附帶一個(gè) Example Project ,自帶一個(gè)

    2024年02月14日
    瀏覽(63)
  • 【neo4j忘記密碼】neo4j忘記密碼的處理方法

    【neo4j忘記密碼】neo4j忘記密碼的處理方法

    小伙伴們大家好,我是javaPope,因?yàn)樽罱胍獦?gòu)建知識(shí)圖譜,突然想起自己還安裝過neo4j,當(dāng)我滿懷欣喜啟動(dòng)以后卻發(fā)現(xiàn),忘記密碼了,嗚嗚嗚,然后,廢話不多說,怎們直接上教程: 找到neo4j.config文件,路徑如下(以自己為準(zhǔn)): D:neo4jconfneo4j.conf 將 dbms.security.auth_enable

    2024年02月11日
    瀏覽(24)
  • Neo4j | 保姆級(jí)教學(xué)之如何清空neo4j數(shù)據(jù)庫

    要清空neo4j數(shù)據(jù)庫,需要進(jìn)行以下操作: 停止Neo4j服務(wù)器,關(guān)閉Neo4j的所有連接。 找到 Neo4j 數(shù)據(jù)庫存儲(chǔ)的目錄,通常是 data/databases/ 。 刪除該目錄中的所有文件和子目錄。 請注意,這將不可逆地刪除數(shù)據(jù)庫的所有內(nèi)容,包括節(jié)點(diǎn)、關(guān)系和屬性等數(shù)據(jù)。在執(zhí)行這個(gè)操作之前,請

    2024年02月06日
    瀏覽(22)
  • neo4j網(wǎng)頁無法打開,啟動(dòng)一會(huì)兒后自動(dòng)關(guān)閉,查看neo4j status顯示Neo4j is not running.

    neo4j網(wǎng)頁無法打開,啟動(dòng)一會(huì)兒后自動(dòng)關(guān)閉,查看neo4j status顯示Neo4j is not running.

    公司停電,服務(wù)器未能幸免,發(fā)現(xiàn)無法訪問此網(wǎng)站,http://0.0.0.0:7474 在此之前都還好著 發(fā)現(xiàn)neo4j啟動(dòng)后幾秒自動(dòng)掛掉 查看neo4j的報(bào)錯(cuò)日志 得到以下內(nèi)容(縮減版) 錯(cuò)誤信息 “User limit of inotify watches reached” 表明系統(tǒng)達(dá)到了 Linux 內(nèi)核對 inotify 監(jiān)控事件的限制。inotify 是 Linux 內(nèi)

    2024年04月11日
    瀏覽(20)
  • Java實(shí)現(xiàn)neo4j數(shù)據(jù)庫連接及增刪改查

    Java實(shí)現(xiàn)neo4j數(shù)據(jù)庫連接及增刪改查

    天行健,君子以自強(qiáng)不息;地勢坤,君子以厚德載物。 每個(gè)人都有惰性,但不斷學(xué)習(xí)是好好生活的根本,共勉! 文章均為學(xué)習(xí)整理筆記,分享記錄為主,如有錯(cuò)誤請指正,共同學(xué)習(xí)進(jìn)步。 可參考文章: neo4j數(shù)據(jù)庫的介紹及基礎(chǔ)語法 neo4j數(shù)據(jù)庫語法實(shí)例演示 在增刪改查之前我

    2024年02月14日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包