solr基於lucene的索引,而索引中的最基本的單元式document,在solr中,管理每乙個document(更新、刪除、查詢),基本都會用到對應的id,類似關係資料表中的主鍵。但是,如果我希望solr能夠自動生成這個唯一的id,有時候也省去了不少的工作,而只需要在solr中進行配置即可。
下面,通過例項來說明,如何配置solr支援的uuid。
在solr
中配置生成唯一uuid
,需要修改兩個配置檔案:
schema.xml
schema.xml
檔案的配置內容,增加如下型別配置:
[html]view plain
copy
print?
<
fieldtype
name
="uuid"
class
="solr.uuidfield"
indexed
="true"
/>
再增加id欄位的型別,如下所示:
[html]view plain
copy
print?
<
field
name
="id"
type
="uuid"
indexed
="true"
stored
="true"
multivalued
="false"
required
="true"
/>
這樣還不夠,還需要指定在更新索引的時候,使用這個更新策略,即配置乙個requesthandler
元素。solrconfig.xml
配置solrconfig.xml
檔案,修改更新索引的requesthandler
配置,內容如下所示:
[html]view plain
copy
print?
<
requesthandler
name
="/update"
class
="solr.updaterequesthandler"
>
<
lstname
="defaults"
>
<
strname
="update.chain"
>
dispup
str>
lst>
requesthandler
>
上面的update.chain就是我們實際要指定的使用uuid進行更新的策略的配置,如下所示:
[html]view plain
copy
print?
<
updaterequestprocessorchain
name
="dispup"
>
<
processor
class
="solr.uuidupdateprocesso***ctory"
>
<
strname
="fieldname"
>
idstr
>
processor
>
<
processor
class
="solr.logupdateprocesso***ctory"
/>
<
processor
class
="solr.distributedupdateprocesso***ctory"
/>
<
processor
class
="solr.runupdateprocesso***ctory"
/>
updaterequestprocessorchain
>
經過上面兩步配置,在進行索引的時候,就不需要指定document所要求的id了,完全有solr自動生成這個id字串。
參考:
Solr自動生成ID配置
solr基於lucene的索引,而索引中的最基本的單元式document,在solr中,管理每乙個document 更新 刪除 查詢 基本都會用到對應的id,類似關係資料表中的主鍵。但是,如果我希望solr能夠自動生成這個唯一的id,有時候也省去了不少的工作,而只需要在solr中進行配置即可。下面,...
Solr自動生成ID
在solr中,每乙個索引,都要有乙個唯一的id,類似於關係型資料庫表中的主鍵。為了方便建立索引,需要配置自動生成的id,即uuid。一 配置schema.xml檔案 新增uuid欄位型別,修改欄位id的型別。二 配置solrconfig.xml檔案 新增更新策略配置,呼叫solr中的uuidupda...
es手動生成id和自動生成id
1.es手動指定document id 1.根據應用情況來說,是否滿足手動指定document id的前提 一般來說,是從某些其他的系統中,匯入一些資料到es時,會採取這種方式。就是使用系統中已有的資料的唯一標識,作為es中 document的id.舉個例子,比如說,開發乙個電商 做搜尋功能,或者o...