當前位置:成語大全網 - 書法字典 - solr的索引數據可以存儲在數據庫中嗎?

solr的索引數據可以存儲在數據庫中嗎?

在關於solr和tomcat集成的文章中,我使用的索引庫是mycore,所以現在讓我們以此為例。

首先準備jar包:solr-DataImportHandler-4 . 8 . 1 . jar、Solr-DataImportHandler-Extras-4 . 8 . 1 . jar和MySQL-Connector-Java-5 . 0 . 7-bin . jar,這是Solr的tomcat Web的三個包。

配置兩個文件並在此文件夾的conf下添加壹個文件。首先配置solrconfig.xml。

在此文件下添加壹個新節點。

& ltrequest handler name =“/data import“class =“org . Apache . Solr . handler . data import . data import handler“& gt;

& ltlst name =“defaults“& gt。

& ltstr name =“config“& gt;數據配置文件& lt/str & gt;

& lt/lst & gt;

& lt/request handler & gt;

在與solrconfig.xml相同的目錄中創建data-config.xml

配置:

復制代碼

& ltdataConfig & gt

& lt數據源類型=“JDBC data source“

driver =“com . MySQL . JDBC . driver“

URL =“JDBC:MySQL://localhost:3306/courseman“

user =“root“

password =“MySQL“/& gt;

& lt文檔& gt

& ltentity name=“學生“

query =“SELECT * FROM student“& gt;

& ltfield column =“id“name =“id“/& gt;

& ltfield column =“name“name =“name“/& gt;

& ltfield column =“gender“name =“gender“/& gt;

& ltfield column =“major“name =“major“/& gt;

& ltfield column =“grade“name =“grade“/& gt;

& lt/entity & gt;

& lt/document & gt;

& lt/data config & gt;

復制代碼

schemal.xml的配置

復制代碼

& lt?XML version =“1.0“?& gt

& lt!-

根據壹項或多項授權給Apache軟件基金會(ASF)

貢獻者許可協議。請參見隨壹起分發的通知文件

這是關於版權所有權的附加信息。

ASF根據Apache許可證版本2.0許可您使用該文件

(“許可證”);除非遵守,否則不得使用本文件

執照。您可以從以下網址獲得許可證的副本

除非適用法律要求或書面同意,軟件

在許可證下分發是在“原樣”的基礎上分發的,

沒有任何明示或暗示的保證或條件。

有關管理權限和的特定語言,請參見許可證

許可證下的限制。

-& gt;

& ltschema name =“example core one“version =“1.1“& gt;

& ltfield type name =“string“class =“Solr。StrField“sortMissingLast =“true“omit norms =“true“/& gt;

& ltfield type name =“long“class =“Solr。TrieLongField“precision step =“0“positionIncrementGap =“0“/& gt。

& ltfield type name =“int“class =“Solr。TrieIntField“precision step =“0“positionIncrementGap =“0“/& gt。

& lt!-常規-》;

& ltfield name =“id“type =“int“indexed =“true“stored =“true“/& gt;

& ltfield name =“gender“type =“string“indexed =“true“stored =“true“/& gt;

& ltfield name =“name“type =“string“indexed =“true“stored =“true“/& gt;

& ltfield name =“major“type =“string“indexed =“true“stored =“true“/& gt;

& ltfield name =“grade“type =“string“indexed =“true“stored =“true“/& gt;

& ltfield name =“_ version _“type =“long“indexed =“true“stored =“true“/& gt;

& lt!-用於確定和強制文檔唯壹性的字段。-& gt;

& ltuniqueKey & gtid & lt/unique key & gt;

& lt!-缺少顯式字段名時QueryParser使用的字段-& gt;

& lt默認搜索字段& gt名稱& lt/defaultSearchField & gt;

& lt!- SolrQueryParser配置:default operator =“AND | OR“-& gt;

& ltsolrQueryParser default operator =“OR“/& gt;

& lt/schema & gt;

復制代碼

默認文件不是這樣的,它被稍微修改了壹下。

根據字段類型的名稱定義字段的類型。類是solr定義的,不能更改。

shcema.xml文件中字段field的屬性介紹:

(1)名稱:字段名稱。

(2)類型:字段類型(這裏的類型不是java類型,而是下面定義的字段類型)

(3)已索引:是否索引取決於true - solr將對該字段進行索引,並且只能對已索引的字段進行搜索和排序;False -沒有索引。

(4)已存儲:是否存儲取決於true -存儲它。當我們需要在頁面上顯示該字段時,應該將其設置為true,否則將為false。

(5)必填:是否需要查看true -此字段為必填。如果此字段的內容為空,將報告異常;錯誤-不需要。

(6)多值:該字段是否可以存儲多個值取決於它。

(7)omit norms:是否解析該字段取決於有時我們希望通過某個字段的完美匹配來查詢信息,因此設置indexed =“true”和omit norms =“true”。

(8)默認:設置默認值。

有這樣壹個字段類型描述:

& ltfield type name =“text _ general“positionIncrementGap =“100“& gt。

& lt分析器type =“index“& gt;

& lttokenizer/& gt;

& ltfilter ignore case =“true“words =“stop words . txt“enablePositionIncrements =“true“/& gt;

& lt過濾器/& gt;

& lt/analyzer & gt;

& lt分析器type =“query“& gt;

& lttokenizer/& gt;

& ltfilter ignore case =“true“words =“stop words . txt“enablePositionIncrements =“true“/& gt;

& lt篩選同義詞=“synonyms . txt“ignore case =“true“expand =“true“/& gt;

& lt過濾器/& gt;

& lt/analyzer & gt;

& lt/field type & gt;

屬性描述:

(1)name:類型名稱,《field & gt這是中的類型引用的名稱。

②類:Solr用戶定義類型

③& lt;分析器type =“index“& gt;定義創建索引時使用的斷字符和篩選器。

(4)& lt;分析器type =“query“& gt;定義搜索中使用的分詞系統和過濾器。

(五)《1tokenizer/& gt;定義分詞系統

(6)& lt;過濾器/& gt;定義過濾器

唯壹鍵屬性

& ltuniqueKey & gtid & lt/unique key & gt;

與數據表中數據的id類似,最好在solr索引庫中定義壹個字段來標記文檔的唯壹性,該字段主要用於刪除文檔。

DefaultSearchField屬性

也就是說,當您進行查詢搜索時,如果您沒有指定要搜索的特定字段,Solr將只搜索該字段。

& lt默認搜索字段& gt默認& lt/defaultSearchField & gt;

CopyField屬性

它用於將壹個字段中的值復制到另壹個字段中。例如,您可以將名稱中的事物復制到專業中,因此solr在搜索時也會檢索名稱中的事物。

& ltcopy field source =“name“dest =“major“/& gt。

現在您可以將數據從數據庫導入solr。

只需點擊執行。