1. 程式人生 > >Solr第四篇——schema.xml的配置

Solr第四篇——schema.xml的配置

在solr家裡面的核內,的conf目錄下,有兩個配置檔案是我們要掌握的。
一個是核心配置檔案solrconfig.xml,一個就是schema.xml
Schema.xml中配置的是什麼東西?
配置了大量的域。
開啟schema.xml。看,裡面配置了大量的域,選取這個進行介紹。
這裡寫圖片描述

這條配置是個什麼意思呢?
意思就是配置了一個域,
名字叫version
型別是long型別,注意:這裡的long是別名。
找到別名位置:
這裡寫圖片描述
所以:
名字為version的這個域,是longField型別的(lucene的域學習中介紹過),這個域是不分詞,後面配置了兩個 就是是否索引,true,是否儲存,true、
也就是說:
前面我們在lucene中,建立索引的時候,建立索引的程式碼。現在在solr中,使用配置檔案進行替代,配置在schema.xml。使用的時候,就直接用這個名字,然後對應的域值,就ok。

再繼續往下看:發現這麼一條資料
這裡寫圖片描述

這個就是配置的id域。有個required=“true”;是必須的,是什麼意思?
我們在lucene中的時候,id 是不必須的。但是實際上是因為:
在lucene我說過:當我們在將文件物件扔進索引庫的時候,自動為每個文件建立了索引,就是每個文件物件都有id;而使用solr的時候,不再自定建立這個域,那麼就要我麼指定;
所以對於文件物件的id,對比資料庫進行理解。相當於資料庫的主鍵id;lucene是自己生成,類似自增長;solr是在schema.xml中進行配置,我們指定。類似於assigned。
multiValued=”false”;多值。False;就是id唯一;不能多個;
除了配置的filed 還有這樣的配置:
這裡寫圖片描述

這就是動態域;什麼是動態域呢?
先說一個事情:
schema.xml中配置的域,就是我們要使用的域,意思就是:
我們在使用solr進行開發的時候,要想使用一個域,這個域必須在shema.xml中有配置。如果沒有那麼就會報錯,
Schema.xml中配置了很多域,你可以直接使用,也可以自己配置。自定義域。
而動態域就是配置一些,域名字是萬用字元的域;
這種動態匹配,很多配置檔案都有使用,不再介紹。
繼續往下看:

這裡寫圖片描述

唯一主鍵id,前面已經介紹完了。
再往下看:
這裡寫圖片描述
copyField拷貝域:
這個域也是很重要的,這個域是什麼意思,又有什麼作用呢?
source=”name” 原域
dest=”text” 目標域;
就是將name域中的內容拷貝到text域中,這個拷貝有什麼意義呢?
在我們開發中:
回想一下:lucene我們實現的查詢文件的需求的案例程式碼;我們在搜尋的時候,指定了在filename域去搜索“全文”,如果要搜尋內容,那麼我們就要指定到內容的域中去搜索,
意思就是,域不同,搜尋的時候我們要制定,在指定的域中進行搜尋。
但是,我們在實際開發過程中,面對的需求,往往是不知道在哪個域中搜索,或者不指定
域進行搜尋。這個時候,那麼我們要想搜尋 檔名字和內容都含有“全文”的只能進行遍歷,這樣顯然不好,效能也會大大降低;
而這個拷貝域就幫我們解決了這個問題:
拷貝域的作用就是將多個域中的內容拷貝到一個域中去。搜尋的時候,只搜尋拷貝域就ok了;
繼續看:
這裡寫圖片描述

這後面就是定義域了,定義一個域,然後使用的分詞器型別,。。我們在配置IK分詞器的時候也按照這個模板進行配置就好了。

Schema.xml配置檔案就介紹到此吧。
其他的就沒什麼好看的了。
至此,對以上總結幾句話:
使用solr時候,域先定義再使用,
定義域schema.xml中進行配置。
這個檔案在solr家下面的核裡面;
這個配置檔案中配置了域,動態域,拷貝域,域的型別,唯一主鍵
分詞器配置到域中,
域的型別有:index和query。index 是建立索引,query是查詢索引。(介紹漏了,也就不補充了)

相關推薦

Solr——schema.xml配置

在solr家裡面的核內,的conf目錄下,有兩個配置檔案是我們要掌握的。 一個是核心配置檔案solrconfig.xml,一個就是schema.xml Schema.xml中配置的是什麼東西? 配置了大量的域。 開啟schema.xml。看,裡面配置了大

Solr搜尋引擎-Schema API詳解

官網:https://lucene.apache.org/solr/guide/7_5/schema-api.html 總體介紹 Solr中強烈推薦使用Schema API來管理集合/核心的模式資訊,可以讀、寫模式資訊。通過API來更新模式資訊,solr將自動

Solr 6.0 學習(三)Schema.xml 配置

<?xml version="1.0" encoding="UTF-8" ?> 略... <!-- 這是Solr的schema檔案,應該命名為schema.xml,並且在solr home的conf目錄下 (如,預設在./solr/conf/sc

SpringMVC——處理器對映器,處理器介面卡,檢視解析器的配置

這兩個註解的作用和來源: <mvc:annotation-driven/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&

springCloud微服務系列——配置中心——手動重新整理

目錄 一、簡介     端點配置     安全配置     重新整理     端點配置     安全配置              重新整理 一、簡介        配置檔案如果改變了,已經啟動的服務如何獲得最新的配置,當然可以重新啟動服務,但是

實例講解webpack的基本使用

load prefix fig 圖片 onf com 引用 下載 基本 這一篇來講解一下webpack的loader的使用,用webpack打包文件,css,img,icon等都需要下載安裝對應的loader文件,並且寫好配置項,才可以進行打包,廢話不多說,直接開始實戰。

RabbitMQ:Spring集成RabbitMQ

led ase don 才會 catch rabl try edt .get 前面幾篇講解了如何使用rabbitMq,這一篇主要講解spring集成rabbitmq。 首先引入配置文件org.springframework.amqp,如下 &l

:Web框架 - Django

執行指定 gin nag nbsp 表達 font con 展現 del 前言 Django是一個開放源代碼的Web應用框架,由Python寫成。它和J2EE一樣,采用了MVC的軟件設計模式,即模型M,視圖V和控制器C。 本文將講解DJang

shell(下)

中文 key 文本 什麽 例子 理念 通用 close 其它 摘自王垠的:Unix的缺陷   我想通過這篇文章解釋一下我對 Unix 哲學本質的理解。我雖然指出 Unix 的一個設計問題,但目的並不是打擊人們對 Unix 的興趣。雖然 Unix 在基礎概念上有一個挺嚴重的問

Python開發【】:Python基礎之函數

nco pos *args 更強 三元 sequence hunk ins att 三元運算 三元運算(三目運算),是對簡單的條件語句的縮寫。 # 書寫格式 result = 值1 if 條件 else 值2 # 如果條件成立,那麽將 “值1” 賦值給result

Spring框架之基於註解的DI註入

聯合 junit4 style troy ont student stc 創建配置文件 int 一、說明 [email protected]/* */,但意義不同的註解還有三個: 1)@Repository:註解在Dao實現類上 2)@Service:註解

課:通過配置文件獲取對象(Spring框架中的IOC和DI的底層就是基於這樣的機制)

ted const dex generate stat clas name 必須 nbsp 首先在D盤創建一個文件hero.txt,內容為:com.hero.Hero(此處必須是Hero的完整路徑) 接下來是Hero類 package com.hero; publi

: python函數續

級別 加載 失效 結束 解釋 全局 定義 執行文件 作用 1、名稱空間和作用域 名稱空間:存放名字的地方,準確的說名稱空間是存放名字與變量值綁定關系的地方名稱空間共有三種名稱空間既:  1、內置名稱空間:在python解釋器啟動時產生,存放一些python內置的名字  2

python數據類型

循環 replace with 出現 length 自己 擴展 utf-8 格式化 1.整數類型 int  n1 = 4 ret=n1.bit_length()表示二進制最短位數 2.字符串類型 str   tmp = "wxy"   dir(tmp) 查看方法   he

關於AJAX

try () str 名稱 發送 服務器的響應 ket get header GET 請求 xmlhttp.open("GET","/try/ajax/demo_get.php",true); xmlhttp.send(); 可能得到的是緩存的結果。為了避免這種情況,請向

2017年8月20日

替換 正則表達式語法 pla 們的 模式 six 而是 als 可能 PHP正則表達式 一什麽是正則表達式:正則表達式就是一種描述字符串結構的語法規則。 二為什麽需要正則表達式? 因為需要對用戶提交的信息進行驗證,如果不驗證的話,有可能用戶提交的就是垃圾信息。 三PHP裏面

elasticsearch (API約定)

aml cas jsonp har 計算 pre 只需要 cal use 對多個indices進行操作 es中大多resetapi支持請求多個index, 例如”test1,test2,test3”,index也可以使用通配符, 例如”test*“, 還可以使用+,-來包含

深入理解ajax系列

blob selected 單選框 encode 展示 條目 種類型 %20 寫代碼 前面的話   現代Web應用中頻繁使用的一項功能就是表單數據的序列化,XMLHttpRequest 2級為此定義了FormData類型。FormData為序列化表單以及創建與表單格式相同的

[機器學習] 機器學習,線性回歸的優化

images .html span mod 來看 itl sso linear 我們 當我們的數據存在多重共線性時,即其中的一個自變量可以用其他一個或幾個自變量的線性表達式進行表示,你會發現,擬合之後的方差會特別大 一般說來當解釋變量的容忍度(TOLERANCE)小於0.1

HTML 表單深入了解、註釋和a標簽的運用

com 提醒 隱藏 option nbsp 出現 val 全部 我們 表單深入了解、註釋和a標簽的運用 註釋,HTML中的註釋格式: 開頭 <!-- 結束 --> 例子: <!-- <div>我被註釋了</div> --&