*全文檢索:從文字或資料庫中自由萃取出訊息的技術,能夠在大量資料中快速搜索。執行全文檢索任務的程式,一般稱作搜尋引擎。
圖:Solr如何與應用程序整合(同時運作)
例 : 線上商店應用程序提供用戶界面"購物車",為最終用戶進行購買的方式。而庫存管理應用程序將允許商店員工編輯產品信息。產品的metadata(元資料)將保存在某種數據庫或Solr中。
許多文件都是XML格式,但與config進行設定的API傾向於用JSON格式進行programmatic access(編程訪問)。
在Solr’s Home將找到以下文件:
Solr index配置透過schema.xml和solrconfig.xml完成 :
WordPress : 為一套內容管理系統,能夠透過它來快速建立及管理網站。
Solarium : Solr的用戶端庫
From : https://deeplearning.lipingyang.org/2017/05/13/apache-solr-schema-explained/
Schema API用HTTP API管理Schema的設定,可以讀、寫Schema,並通過API來更新Schema,solr會自動更新核心。用這種方式來動態的定義模式,就不用自己手動編寫config。
但是修改Schema並不會自動重新索引已索引的文件,只會對後續的文件起作用,如果必要的話則需手動重新索引(刪除原來的,再重新提交文件)。
Step 1. Installing OpenJDK version 14 on Ubuntu 20.04 LTS
Step 2. Verification(check version)
Step 3. Set up JAVA_HOME environment variable
update the environment variables config file
and set JAVA_HOME as follows:
Step 1. 取得Solr的下載地址,然後使用wget命令下載
https://archive.apache.org/dist/lucene/solr/
Step 2. 下載完成後解壓縮檔案
Step 3. 啟動
Then~~~Happy searching!
solr-7.4.0/server/solr/
中創建一個資料夾(例:test1)solr-7.4.0/server/solr/test1/conf/
中打開 managed-schema
或 schema.xml
有關solr的連結們:
https://wbkuo.pixnet.net/blog/category/2123399
https://lucene.apache.org/solr/8_7_0/changes/Changes.html
_txt
fields 創建 _str
fields, 並在query(查詢)過後 return 這些 fields (by default). 從7.5開始, _str
fields 在 default 不會再 return fields, 但仍可以用, 只是需要透過fl
(某個參數)來進行查詢.optimize
以及 expungeDeletes
將遵循 maxMergedSegmentMB
的配置參數, 參數的 default 值為 5000 (5GB)。maxSegments
設為正整數。 (盡量把maxSegments
設為高於 1
)。TieredMergePolicy
會比以前更積極 reclaim(收回) 超出 maxMergedSegmentMB
部分的resources。UIMA官網: https://uima.apache.org/
server/resources/log4j2.xml
的default位置位於Solr的 logging configuration file 中bin/solr start -e
) 會被放到正確位置 example/
而不是 server
使用CLUSTERPROP命令以設定 cluster-wide default cluster properties 的 JSON 參數已更改。
舊的語法將 defaults nest(崁套)至 clusterDefaults
中,而新的語法只使用 defaults
. The command to use is still set-obj-property
nest(崁套): 在已有的表格、圖像或圖層中再加一個或多個表格、圖像或圖層,亦或兩個物體有裝配(可以互相組合)關係時,將一個物體嵌入另一物體的方法。
An example of the new syntax is: (JSON)
到Solr 9之前仍支持舊語法,但建議用戶盡快使用新語法。
min_rf
這個參數已被棄用,不再需要被提供去查看已實現的replication factor(複制因子)。replication factor 將會與 response 一起 return 給客戶端。現在 autoscaling policy 被當作 default strategy, 可選擇創建 (new replicas)新副本 或 新collections副本 上的(node)節點。而所有的users都必須使用 default policy, 在default情況下, 會依據core的數量和可用的freedisk排序nodes, 這表示 "最少core數量和最高可用freedisk的node" 會被優先選擇去創建新的core。
以上的更改對 maxShardsPerNode
參數有兩個影響:
maxShardsPerNode
移除了使用限制, 現在創建collectiong時可設定此參數。maxShardsPerNode=1
。變成無論是否有設置autoscaling policy, 都會正確設置maxShardsPerNode
(如果有需要的話)。maxShardsPerNode
的default值仍為 1
, 但如果需要unlimited的舊行為則把 maxSharedsPerNode
設為-1即可。.ByteBuffersDirectoryFactory
以代替 RAMDirectoryFactory
( RAMDirectoryFactory
在Solr 9中會被移除)。NRTCachingDirectoryFactory
(可允許 Lucene 選擇最佳的 directory factory 來使用), 但如果已明確使用 RAMDirectoryFactory
來配置 Solr 的話, 建議在Solr 9 發布前更改至新的替代方式。shards
這個參數接收 distributed requests 時需手動選擇 shards 和 replicas, 以根據可接受值的whitelist(白名單) 檢查(or核對?) nodes。shards
參數的 users 可透過 solrconfig.xml
中的任何 shardHandler
中的shardsWhitelist
property 來更改此值。直接安裝solr 7.7, 創建core(參考這裡)之後配置schema:
solr-7.7.0/server/solr/test1/conf/
中打開 managed-schema
或 schema.xml
20210416測試時可以正常篩選
(1) 一個資料集如果有兩(或以上)個檔案的話無法依格式分類,但只有一個檔案的話可以。
(2) 可以手動設定標籤,但無法進行篩選。
(英文字不分大小寫皆可搜尋, 例: 搜尋"aids"等同於搜尋"AIDS")
(中文斷詞目前好像是依照字和字之間有沒有空白分辨的, 例: "檔 案"的"檔"與"案"是分開的兩個詞, "檔案"則是同一個詞)
"2016"
"腸病毒"
"16腸病毒"
"area"
"AIDS"
"愛滋病"
"die"
"統計表"
"資料集"
"資 料 集"
"檔 案"
"csv"
"json"