elasticsearch建立multi-fields欄位及修改非multi-fields欄位為multi-fields欄位及multi-field欄位的不同的analyzer進行分析和搜尋
本文使用的elasticsearch是5.2.1,官方的multi-fields例子參見 https://www.elastic.co/guide/en/elasticsearch/reference/5.3/multi-fields.html
建立一個index及type和mapping 及setting 和analyzer和search_analyzer,注意此時已經是multi-fields了,如下:
PUT /test/
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "my_tokenizer"
},
"my_analyzer2": {
"type": "pattern",
"pattern": "\\W+|_",
"lowercase": true
}
},
"tokenizer": {
"my_tokenizer": {
"type": "pattern",
"pattern": "\\w+|\"(.+?)\"",
"group":0
}
}
}
},
"mappings": {
"tech": {
"properties": {
"body": {
"type": "text",
"analyzer":"standard",
"search_analyzer": "standard",
"fields": {
"syh": {
"type": "text",
"analyzer":"my_analyzer",
"search_analyzer": "my_analyzer"
},
"xhx": {
"type": "text",
"analyzer":"my_analyzer2",
"search_analyzer": "my_analyzer2"
}
}
}
}
}
}
}
修改剛才建立的type的mapping為multi-fields
PUT /test/tech/_mapping
{
"tech": {
"properties": {
"body": {
"type": "text",
"analyzer":"standard",
"search_analyzer": "standard",
"fields": {
"syh": {
"type": "text",
"analyzer":"my_analyzer",
"search_analyzer": "my_analyzer"
},
"xhx": {
"type": "text",
"analyzer":"my_analyzer2",
"search_analyzer": "my_analyzer2"
}
}
}
}
}
}
修改剛才建立的索引的setting,本例是修改analyzer,注意修改setting必須先關閉索引,然後再開啟索引
POST /test/_close
PUT /test/_settings
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "my_tokenizer"
},
"my_analyzer2": {
"type": "pattern",
"pattern": "\\W+|_",
"lowercase": true
}
},
"tokenizer": {
"my_tokenizer": {
"type": "pattern",
"pattern": "\\w+|\"(.+?)\"",
"group":0
}
}
}
}
}
POST /test/_open
針對剛才索引test的型別tech的不同的欄位做analyzer,同樣的文件其分詞效果是不一樣的。
檢視body.syh欄位的帶雙引號分詞效果
POST /test/_analyze
{
"field": "body.syh",
"text": "description \"this device in beijing office \" \"what are you going to do\" email_address"
}
檢視body.xhx欄位的帶下劃線的分詞效果
POST /test/_analyze
{
"field": "body.xhx",
"text": "description \"this device in beijing office \" \"what are you going to do\" email_address"
}
檢視body欄位的standard的分詞效果
POST /test/_analyze
{
"field": "body",
"text": "description \"this device in beijing office \" \"what are you going to do\" email_address"
}
使用bulk插入一條資料
POST _bulk/?refresh=true
{ "index" : { "_index" : "test", "_type" : "tech" } }
{ "body": "description \"this device in beijing office\" \"what are you going to do\" email_address"}
查詢body欄位的standard搜尋
POST /test/_search?pretty
{
"query": {
"term": {
"body": "description"
}
}
}
查詢body.xhx欄位的my_analyzer2搜尋
POST /test/_search?pretty
{
"query": {
"term": {
"body.syh": "\"this device in beijing office\""
}
}
}
POST /test/_search?pretty
{
"query": {
"term": {
"body.xhx": "address"
}
}
}
相關推薦
elasticsearch建立multi-fields欄位及修改非multi-fields欄位為multi-fields欄位及multi-field欄位的不同的analyzer進行分析和搜尋
本文使用的elasticsearch是5.2.1,官方的multi-fields例子參見 https://www.elastic.co/guide/en/elasticsearch/reference/5.3/multi-fields.html 建立一個index及type
Elasticsearch索引的建立、檢視及修改
mapping的寫入與檢視 使用elasticsearch儲存資料之前建立索引非常關鍵,一個好的索引使後續業務的查詢更加方便快捷,我們建立索引時如果不指定相關資訊,會按照預設設定建立,如果我們想要更加強大的功能,比如中文檢索、拼音檢索、首拼檢索,就需要我們自己規劃索引
MySQL(1) 基本操作(MySQL的啟動,表的建立,查詢表的結構和表的欄位的修改)
MySQL啟動流程 1 啟動伺服器 2 使用者名稱登入到MySQL資料庫中 3 檢視有哪些資料庫 4 使用其中的資料庫 5 檢視該資料庫中已有哪些表,沒有就新建 mysql
SQL 操作表結構(建立欄位,刪除欄位,修改欄位)
新增欄位: ALTER TABLE [表名] ADD [欄位名] NVARCHAR (50) NULL 刪除欄位: ALTER TABLE [表名] DROP COLUMN [欄位名] 修改欄位: ALTER TABLE [表名] ALTER COLUMN [欄位名] N
Access中欄位型別及修改欄位型別的SQL語句
Access中的資料型別 Access中有10中資料型別:文字、備註、數值、日期/時間、貨幣、自動編號、是/否、OLE物件、超級連結、查詢嚮導。 1、文字(Text(n)):這種型別允許最大255個字元或數字,Access預設的大小是50個字元,而且系統只儲存輸入到欄位中的字元,而不儲存文字欄位中未用位置
mysql 在表中新加欄位、修改欄位
新增欄位 在某個欄位之後新加一個欄位: ALTER TABEL xxx ADD column_name VARCHAR(64) NOT NULL DEFAULT '' COMMENT '' AFTER xxx; 修改欄位 ALTER TABEL xxx MODIFY co
SpringBoot學習筆記15——MybatisPlus修改時空欄位不修改
問題描述: 今天遇到了一個問題,在更新資料時,MybatisPlus不會進行修改屬性為空的資料表字段。 解決辦法: 只需要在實體類的屬性上加一行註釋即可 /** * 姓名 */ @TableField(fill = FieldFill.UPDATE
資料庫工作筆記010---Mysql中用SQL增加、刪除欄位,修改欄位名、欄位型別、註釋,調整欄位順序總結
JAVA技術交流QQ群:170933152 Mysql中用SQL增加、刪除欄位,修改欄位名、欄位型別、註釋,調整欄位順序總結 在網站重構中,通常會進行資料結構的修改,所以新增,刪除,增加mysql表的欄位是難免的,有時為了方便,還會增加
mysql修改表結構 MySQL修改表結構操作命令總結 MySql資料庫在表中新增新欄位,設定主鍵,設定外來鍵,欄位移動位置,以及修改資料庫後如何進行部署和維護的總結 mysql 如何修改、新增、刪除表主鍵
MySQL修改表結構操作命令總結 以下內容轉自:http://www.jb51.net/article/58079.htm 表的結構如下: 複製程式碼程式碼如下:
建立新資料庫及修改資料庫內容
1.切換到odoo使用者 su - odoo -s /bin/bash 2. 建立新資料庫 createdb v8dev 3. 初始化資料庫,並配置odoo資料模式 chmod +x odoo: odoo.py(可選,增加檔案的執行許可權) ./odoo.py -d v8
Linux建立使用者及修改使用者的許可權
下面的步驟都是在root使用者下完成 1:建立一個使用者並且制定一個主目錄 useradd -d /home/john john(建立一個使用者名稱為john的使用者,指定的主目錄是/home//john) 2:修改建立使用者的密碼 passwd john 123456(將joh
解決MybatisPlus修改時空欄位不修改問題
問題描述: 今天遇到了一個問題,在更新資料時,MybatisPlus不會進行修改屬性為空的資料表字段。 解決辦法: 只需要在實體類的屬性上加一行註釋即可 /** * 姓名 */ @TableField(fill = FieldFill.UPDATE) private String name;
flask-連線資料庫flask_aqlalchemy-建表-增加欄位-刪除-修改
安裝模組 pip install pymysql pip install flask_aqlalchemy flaskpei配置檔案setting.py 中配置資料庫 設定資料庫url #coding=utf-8 class DataBaseSetting: DEBUG=Tr
檢視並修改Oracle使用者的密碼【oracle不能檢視dba users裡password欄位(儲存密碼的加密過的字串
本文是資料庫版本:9.2.0.5有時候我們可能不知道一個使用者的密碼,但是又需要以這個使用者做一些操作,又不能去修改掉這個使用者的密碼,或者自己乾脆忘記密碼了,想修改自己的密碼,這個時候,就可以利用一些小竅門,來完成操作。具體操作過程如下:SQL*Plus: Release 9.2.0.5.0 - Produ
MySql資料庫在表中新增新欄位,設定主鍵,設定外來鍵,欄位移動位置,以及修改資料庫後如何進行部署和維護的總結
1,為當前已有的表新增新的欄位 alter table student add studentName varchar(20) not null; 2,為當前已有的表中的欄位設定為主鍵自增 alter table student add constraint PK_studentId primaryKe
greendao資料庫升級新增欄位,修改版本後,所引發的問題
首先就是配置greendao資料哭的環境 1.在主專案中的build.gradle 經行配置環境 :(自己這樣用的僅供參考) apply plugin: 'org.greenrobot.greend
Mysql 資料庫 表 欄位字符集修改
修改資料庫字符集 alter database owl default character set utf8; 修改表字符集 alter table t_app character set utf8; 修改單個欄位字符集 alter table t_app modify a
Mysql修改欄位與修改表操作
當我們需要針對mysql的表名或者欄位名需要修改的時候,這個時候就需要用到mysql的alter命令。 為了方便起見,首先我們新建一張使用者表。 create table user( `id` INT NOT NULL AUTO_INCREMENT, `
SQL語句增加欄位、修改欄位、修改型別、修改預設值
一、修改欄位預設值 alter table 表名 drop constraint 約束名字 ------說明:刪除表的欄位的原有約束 alter table 表名 add constraint 約束名字 DEFAULT 預設值 for 欄位名稱 -------說明
NSIS 註冊64位控制元件及修改登錄檔鍵的許可權方法
1 註冊控制元件 註冊32位控制元件:RegDLL "c:\windows\system32\x.dll" 註冊64位控制元件: 禁止檔案重定向,使用系統命令註冊控制元件,如下: ExecWait ‘“$SYSDIR\regsvr32.exe" /s "c:\windows