elasticsearch 欄位別名(建立索引並指定索引型別的mapping)
ES預設是動態建立索引和索引型別的mapping的。這就相當於無需定義Solr中的Schema,無需指定各個欄位的索引規則就可以索引檔案,很方便。但有時方便就代表著不靈活。比如,ES預設一個欄位是要做分詞的,但我們有時要搜尋匹配整個欄位卻不行。如有統計工作要記錄每個城市出現的次數。對於NAME欄位,若記錄“new york”文字,ES可能會把它拆分成“new”和“york”這兩個詞,分別計算這個兩個單詞的次數,而不是我們期望的“new york”。
這時,就需要我們在建立索引時定義mapping。假設索引叫index_name,索引型別的名字叫index_type,編寫mapping檔案如下(注意:mapping檔案中,index_type必須與實際索引當中的索引型別完全一致。
{
"index_type":{
"properties":{
"ID":{
"type":"string",
"index":"not_analyzed"
},
"NAME":{
"type":"string",
"fields":{
"NAME":{
"type":"string"
},
"raw":{
"type":"string",
"index":"not_analyzed"
}
}
}
}
}
}
以上檔案是說我們對於index_type這個索引型別,定義了它的mapping。重點是將NAME這個欄位對映為兩個,一個是需要做索引分析的NAME,另一個是不分析的raw,即不會拆分new york這種片語。這樣我們在做搜尋的時候,就可以對NAME.raw這個欄位做term aggregation,獲得所有城市出現的次數了。term aggregation的REST方式的請求編寫如下:
{
"query": {
"match_all": {}
},
"aggregations": {
"cityAggs": {
"terms": {
"field" : "NAME.raw"
}
}
}
}
相關推薦
elasticsearch 欄位別名(建立索引並指定索引型別的mapping)
ES預設是動態建立索引和索引型別的mapping的。這就相當於無需定義Solr中的Schema,無需指定各個欄位的索引規則就可以索引檔案,很方便。但有時方便就代表著不靈活。比如,ES預設一個欄位是要做分詞的,但我們有時要搜尋匹配整個欄位卻不行。如有統計工作要記錄每個城市出現
如何修改帶索引的欄位的長度,檢視、刪除索引,修改欄位屬性、建立索引!
需要重新建立索引,因為長度不同會認為是兩個不同的所索引。 建立和刪除索引 索引的建立可以在CREATE TABLE語句中進行,也可以單獨用CREATE INDEX或ALTER TABLE來給表增加索引。刪除索引可以利用ALTER TABLE或DROP INDEX語句來實現。 (1)使用ALTER T
oracle資料庫計算兩個時間型別欄位值的時間差,並轉換為合適的時間格式顯示(按時分秒展示)
1.背景 資料庫表名為tablename。其中兩個欄位為startdate(開始時間),closedate(結束時間)。 2.需求 建立試圖,查詢出間隔時間並顯示為自定義的格式。 3.sql語句 select t.*,
關於springboot升級到springboot2.0的一些問題總結(包括ElasticSearch、Redis、Gradle、ElasticSearch欄位摺疊查詢)
關於springboot升級到springboot2.0的一些問題總結(包括ElasticSearch、Redis、Gradle) 最近做專案遇到了一個很麻煩的需求,欄位摺疊,使用mysql查詢的話,簡化一下sql語句是這樣的,我在專案中的查詢涉及兩張表並且有
Solr 6.0 學習(二)建立core並插入索引
修改各種配置檔案。 1、修改solrhome下的solr.xml檔案 註解掉zookeeper搭建叢集配置,我們後面會採用master-slave的形式。 至於zookeeper的形式可以閱讀以下這篇文章【solrCloud叢集配置指導】:http://www.abou
多表關聯查詢中,關聯欄位都應該建立索引嗎?
# 前言 關於mysql的學習,之前都是在網上看各種視訊學習的,所以有些知識點半信半疑。後來看了《高效能Mysql第三版》這本書,雖然只能消化一部分知識點,但有些疑點是可以解決的。 __多表關聯查詢中,關聯欄位都應該建立索引嗎?__ 答案:不應該。 # 過程分析 ## Mysql是如何進
select 時 對欄位判斷是否為null 並進行賦值操作
今天用到這個需求,我用的是db2資料庫 ,上來就用ISNULL(欄位,賦值) ,結果不行。。。。。 經過查閱資料才發現每個資料庫還不同的,,下面總結一下: 首先使用mysql: ifnull(欄位,賦值); db2: nullif(欄位,賦值); oracl:
pymysql獲取要查詢的欄位名(列名)
使用pymysql連線資料庫進行查詢時,獲取的只是查詢的結果,並不包含列名。 可以使用cursor.description來獲取列名的相關資訊。執行結果如下所示。 #!/usr/bin/env/python # -*- coding:utf-8 -*- import pymysql
ORACLE——在所有表、欄位中查詢某個字串並輸出表名和欄位名
什麼都不想說,直接上乾貨 declare v_Sql varchar2(2000); v_count number; begin for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME from
解析ArcGis的欄位計算器(二)——有玄機的要素Geometry屬性,在屬性表就能查出孔洞、多部件
ArcGis裡多部件要素一般有兩種,一種是孔洞、一種是Merge在一起的兩個面。有時候為了便於賦屬性或者其他的一些原因,我們在操作中會故意Merge一些本不在一起的面,造成上述的第二種情況。藉助欄位計算器可以在屬性表中直接把它們標識出來,信不?注:以下語句需要使用Python解析。先上!shape.isMul
excel oracle欄位命名(大寫下劃線分詞)轉 駝峰命名
(帕斯卡) =LEFT(C251,1)&MID(SUBSTITUTE(PROPER(C251),"_",""),2,100) (駝峰) =LOWER(LEFT(A:A,1))&MID(SUBSTITUTE(PROPER(A:A),"_",""),2,10
解析ArcGis的欄位計算器(三)——文字型欄位計算,編號那些事兒
實際操作中我們一般會將編號欄位定義為文字型,因為編號不是序號,序號是一個遞增數值,而編號往往是一個數字串程式碼。1、怎麼編號?最簡單的編號—>直接在編號欄位使用欄位計算器將FID欄位值+1計算過來便是。 BH=[FID]+1 這應該只能叫做序號值,還不夠,還有一個問題需要我們去解決,因為編
SAP 通過事務程式碼與螢幕變式(SHD0)控制控制使用者介面的某些欄位,以控制生產訂單的排程型別為例
在實際工作中經常會遇到要求把SAP中某些欄位鎖定,或設為必須輸入,這時可以用事務程式碼與螢幕變式進行控制,事務程式碼:SHD0 (Transaction and Screen Variants)。 下面是控制生產訂單排程型別為固定值的操作實錄: 一、檢視生產訂單排程型別的螢幕號 輸入事務
將list集合中按照某個欄位排序(從大到小),然後將list中的物件倒序
需求: 查詢資料庫的到多條據,將每一行資料相加求和,得到sum,在jsp中跟據sum總和排序。 首先,我是用Page<Analysis> page 去接受返回值,在controller層進行資料處理。List<Analysis> list =
MySQL中使用表別名與欄位別名
MySQL 表別名(Alias) SQL 表別名 在 SQL 語句中,可以為表名稱及欄位(列)名稱指定別名(Alias),別名是 SQL 標準語法,幾乎所有的資料庫系統都支援。通過關鍵字 AS 來指定。 表別名語法: SELECT column FROM tab
Mongodb 建立索引並利用索引進行排序
python課上需要實現對經度和緯度進行排序,並篩選資料。 由於給出的資料很大,有1200W吧,而mongodb只能支援32MB的排序。。。 上網上搜了一下,決定建立索引,建立完索引之後就直接對資料進行排序了。 這裡貼一下實驗的資料型別: 這裡用的pyhton連線mongdb建
EF多欄位求和(分組/不分組)
分組多欄位求和 query.GroupBy(q => new { q.Year, q.Month }) .Select(q => new { Year = q.Key.Year, Month = q.Key.Month, Bu
C#Winform+AE開發 空間連線(SpatialJoin)以及欄位對映(FieldMapping)(新手記錄)
1,佈局 連線要素的欄位對映控制元件使用的是列表框ListBox 2,獲取目標要素和連線要素 使用兩種方式,一是自動獲取當前地圖載入的圖層 #region 獲取主視窗圖層並新增到控制元件中 &n
將模板word中的特定欄位替換(將資料匯入word中)
一、 將模板word中的特定欄位替換(將資料匯入word中) 所用jar包 一、 將模板word中的特定欄位替換(將資料匯入word中) 所用jar包 開發程式碼 /** * @Title createContract * @description 生成合
EasyUI例項-欄位排序(以及EasyUI框架的datagrid-bug)
可以看到我的例項-增刪改查中並沒有欄位排序,現在我們嘗試著增加一下:對學號欄位排序 第一次嘗試: 1、datagrid是用html標籤初始化的: 2、在js中用onSortColumn事件來完成欄位排序: 3、Service層(假設easyui會傳遞分頁資訊到後