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

elasticsearch 同義詞管理熱更新

這篇具有很好參考價值的文章主要介紹了elasticsearch 同義詞管理熱更新。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

背景

項目有需要做一個同義詞搜索的功能,就去研究了下es的同義詞搜索功能,踩了不少坑記錄下

同義詞本地文件讀取方式

如果只是需要同義詞搜索,不需要管理和更新,es本體就能支持,我踩的坑基本也不在這,就不具體說了,參考這個就好了https://blog.csdn.net/qq_40592041/article/details/108006994

使用(dynamic-synonym)插件遠程熱詞更新

拉取倉庫代碼

插件倉庫地址https://github.com/bells/elasticsearch-analysis-dynamic-synonym
gitee有克隆的倉庫,github連不上可以去gitee找找

根據(jù)自己的es版本打包

查詢es版本直接請求es ip+端口就行

http://127.0.0.1:9200/

返回的json version里面就是版本

{
  "name" : "e8d7d490ec4f",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "Hf1KFT2bSnaW00s9eLSK4Q",
  "version" : {
    "number" : "7.4.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
    "build_date" : "2019-10-28T20:40:44.881551Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

找到pom文件修改version版本和es版本一致
elasticsearch 同義詞管理熱更新,elasticsearch,搜索引擎,es,同義詞搜索
這個時候有個問題,部分版本回出現(xiàn)打包失敗的問題,第一種解決方案是去git提交歷史里找最接近的版本,比如我是7.4.2版本,我找的就是支持7.7.0的提交記錄,回滾代碼到對應(yīng)記錄,在改version為7.4.2打包
elasticsearch 同義詞管理熱更新,elasticsearch,搜索引擎,es,同義詞搜索
打包后運行發(fā)現(xiàn)還是有問題,會報NoSuchMethodError,說output不存在,于是我把git記錄往后推,到了改版本前,這個時候打包也會報output找不到的問題,這個時候把代碼里報錯的outputs(),改成outputs,不是調(diào)方法,而是掉對象,在打包就行了
打完包后在\target\releases文件夾中有個壓縮包,解壓上傳到es的plugins文件夾里新建的dynamic-synonym文件夾就行
然后重啟es,我這邊是docker部署的,直接docker restart就行

服務(wù)端代碼

我這邊為了測試是給的死數(shù)據(jù),后續(xù)需要按需修改,一開始我以為只要有放回就行,后來發(fā)現(xiàn)還需要對head做處理才行

 @GetMapping("/getActive")
    public String getActiveEsSynonyms(HttpServletRequest request, HttpServletResponse response) {
        String result = "";
        String eTag = request.getHeader("If-None-Match");
        String modified = request.getHeader("If-Modified-Since");
        String currentDate = DateUtils.getTime();

        System.out.println("加載ik同義詞,上次同義詞:" + eTag + ",上次修改時間:" + modified + ",當前日期:" + currentDate);

//        if (!currentDate.equals(modified)) {

            String oldSynonym = 2+"";


//            System.out.println("加載ik同義詞,當前同義詞數(shù):"+2);
//            if (!oldSynonym.equals(eTag)) {
                // 獲取數(shù)據(jù)庫同義詞
//                List<Synonym> all = synonymService.all();
//                StringBuilder words = new StringBuilder();
//                for (Synonym synonym : all) {
//                    // 可以使用“=>”方式或者直接“,”分割形式,自行考慮應(yīng)用場景
//                    String theWord = StringUtils.join(synonym.getWords(), " => ", synonym.getSynonymWords());
//                    words.append(theWord);
//                    words.append("\n");
//                }

                eTag = oldSynonym;
                modified = currentDate;
                result = "蘋果,手機\nns,游戲機";
//            }
//        }
        //更新時間
        response.setHeader("Last-Modified", modified);
        response.setHeader("ETag", eTag);
        response.setHeader("Content-Type", "text/plain");
        return result;
    }

設(shè)置es索引

如果是新建索引直接新建就好

PUT test
{
	"settings": {
		"index": {
			"number_of_shards": "3",
			"number_of_replicas": "1",
			"max_result_window": "200000",
			"analysis": {
				"filter": {
					"remote_synonym": {
						"type": "dynamic_synonym",
						"synonyms_path": "http://ip:port/synonyms/getActive",
						"interval": 30
					},
					"local_synonym": {
						"type": "dynamic_synonym",
						"synonyms_path": "synonym.txt"
					}
				},
				"analyzer": {
					"ik_max_syno": {
						"type": "custom",
						"tokenizer": "ik_max_word",
						"filter": [
							"remote_synonym"
						]
					}
				}
			}
		}
	},
	"mappings": {
		"properties": {
			"keyword": {
				"type": "text",
				"analyzer": "ik_max_syno"
			}
		}
	}
}

如果是已有索引要修改,我的操作是先新建一個結(jié)構(gòu)一樣的索引,在把數(shù)據(jù)復(fù)制過去,在刪除原索引,新建原索引,數(shù)據(jù)復(fù)制回去,刪除新索引
刪除索引命令

DELETE test

數(shù)據(jù)復(fù)制命令

POST _reindex
{
  "source": {
    "index": "原索引"
  },
  "dest": {
    "index": "目標索引"
  }
}

測試

添加數(shù)據(jù)后測試,搜索蘋果能出現(xiàn)手機就說明沒問題了文章來源地址http://www.zghlxwxcb.cn/news/detail-825921.html

到了這里,關(guān)于elasticsearch 同義詞管理熱更新的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Elasticsearch同義詞自定義詞庫未生效原因

    檢查文件及目錄是否存在 所有節(jié)點配置完之后都要重啟 檢查測試腳本是否正確的,我遇到的問題就是腳本不正確但是確能執(zhí)行,就是拿不到正確結(jié)果 錯誤腳本: 正確腳本:

    2024年02月11日
    瀏覽(25)
  • Elasticsearch:詞干、Shingles 和同義詞過濾器

    分詞器生成的分詞可能需要進一步豐富或增強,例如小寫(或大寫)標記、提供同義詞、開發(fā)詞干詞、刪除撇號或標點符號等。 分詞過濾器對分詞進行處理以執(zhí)行此類轉(zhuǎn)換。 Elasticsearch 提供了將近 50 個分詞過濾器,正如你可以想象的那樣,在這里討論所有這些過濾器是不可

    2024年02月03日
    瀏覽(26)
  • 【ES】Elasticsearch:詞干、Shingles 和同義詞過濾器

    分詞器生成的分詞可能需要進一步豐富或增強,例如小寫(或大寫)標記、提供同義詞、開發(fā)詞干詞、刪除撇號或標點符號等。 分詞過濾器對分詞進行處理以執(zhí)行此類轉(zhuǎn)換。 Elasticsearch 提供了將近 50 個分詞過濾器,正如你可以想象的那樣,在這里討論所有這些過濾器是不可

    2024年02月05日
    瀏覽(21)
  • 使用阿里云試用Elasticsearch學習:3.6 處理人類語言——同義詞

    詞干提取是通過簡化他們的詞根形式來擴大搜索的范圍,同義詞 通過相關(guān)的觀念和概念來擴大搜索范圍。 也許沒有文檔匹配查詢 “英國女王“ ,但是包含 “英國君主” 的文檔可能會被認為是很好的匹配。 用戶搜索 “美國” 并且期望找到包含 美利堅合眾國 、 美國 、 美

    2024年04月10日
    瀏覽(19)
  • Elasticsearch教程(35) ik中文分詞器+pinyin拼音分詞器+同義詞

    Elasticsearch教程(35) ik中文分詞器+pinyin拼音分詞器+同義詞

    閑來無事,發(fā)現(xiàn)上一篇ES博客還是 去年9月份 寫的中文ik分詞器 pinyin 首字母 search_as_you_type 組合使用,該篇文章還挖了一個 大坑 沒有填,快一年了,是時候填下坑了。 針對股票查詢這個特點場景,再結(jié)合一般使用者的搜索習慣,暫時確定如下7種期望效果。 上一篇博客Elast

    2023年04月09日
    瀏覽(30)
  • 同義詞替換-批量自動同義詞替換軟件

    同義詞替換-批量自動同義詞替換軟件

    同義詞替換,今天給大家分享一款免費的同義詞替換器,支持各種同義詞替換。一個同義詞可以替換多種同義詞。同時還支持同義詞文章替換詳細參考圖片 如何優(yōu)化網(wǎng)站是每個專業(yè)SEO人員都熟悉的問題,也是每天必須做的功課之一。接下來,我們來談?wù)劸W(wǎng)站中的高索引

    2024年02月09日
    瀏覽(16)
  • Oracle系列十二:視圖、記錄、同義詞、序列

    (1)基本概念 Oracle視圖是數(shù)據(jù)庫中的一種特殊對象,它是一個虛擬的表,不存儲數(shù)據(jù),而是基于一個或多個表的查詢結(jié)果而創(chuàng)建的。視圖可以看作是一個 存儲在數(shù)據(jù)庫中的查詢結(jié)果集 ,具有表的特性,包含一系列帶有名稱的列和行數(shù)據(jù), 可以被查詢、修改和刪除 等。 視圖

    2024年02月03日
    瀏覽(24)
  • Oracle存過-對象權(quán)限創(chuàng)建回收、同義詞創(chuàng)建刪除

    Oracle存過-對象權(quán)限創(chuàng)建回收、同義詞創(chuàng)建刪除

    2024年02月15日
    瀏覽(28)
  • docker-compose安裝es以及ik分詞同義詞插件

    docker-compose安裝es以及ik分詞同義詞插件

    目錄 1 前言 2 集成利器Docker 2.1 Docker環(huán)境安裝 2.1.1 環(huán)境檢查 2.1.2 在線安裝 2.1.3 離線安裝 2.2 Docker-Compose的安裝 2.2.1 概念簡介 2.2.2 安裝步驟 2.2.2.1 二進制文件安裝 2.2.2.2 離線安裝 2.2.2.3 yum安裝 3 一鍵安裝ES及Kibana 3.1 yml文件的編寫 3.1.1 elasticsearch.yml配置 3.1.2 kibana.yml配置 3.2 一鍵

    2024年04月23日
    瀏覽(24)
  • ?ES elasticsearch-analysis-dynamic-synonym?連接數(shù)據(jù)庫動態(tài)更新synonym近義詞

    ?ES elasticsearch-analysis-dynamic-synonym?連接數(shù)據(jù)庫動態(tài)更新synonym近義詞

    ????????在很多搜索場景中,我們希望能夠搜索出搜索詞相關(guān)的目標,同時也希望能搜索出其近義詞相關(guān)的目標。例如在商品搜索中,搜索“ 瓠瓜 ”,也希望能夠搜索出“ 西葫蘆 ”,但“ 西葫蘆 ”商品名稱因不含有“ 瓠瓜 ”,導致無法搜索出來。 ????????此時就

    2024年02月09日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包