串流請求處理器 API
/stream
請求處理器除了執行串流運算式外,還可讓您找出可用的運算式,並讓您控制任何已註冊精靈程序的行為。
此 API 不遵循 v2 API 結構。 |
外掛程式:列出所有已註冊的運算式
列出已註冊且可供使用的所有串流運算式。這包括 StreamHandler 註冊的預設運算式,以及您已註冊的任何運算式。
/stream?action=PLUGINS
使用外掛程式的範例
輸入
https://127.0.0.1:8983/solr/gettingstarted/stream?action=PLUGINS
輸出
{
"plugins":{
"enumeratedDistribution":"org.apache.solr.client.solrj.io.eval.EnumeratedDistributionEvaluator",
"year":"org.apache.solr.client.solrj.io.eval.TemporalEvaluatorYear",
"lteq":"org.apache.solr.client.solrj.io.eval.LessThanEqualToEvaluator",
"upper":"org.apache.solr.client.solrj.io.eval.UpperEvaluator",
"commit":"org.apache.solr.client.solrj.io.stream.CommitStream",
"echo":"org.apache.solr.client.solrj.io.stream.EchoStream"
}}
LIST:列出精靈程序
daemon
函式可讓您包裝串流運算式,並以間隔執行它,以提供持續的推送和提取串流。此命令會列出目前正在執行的所有精靈程序。
/stream?action=LIST
此命令會列出已註冊到您正在互動之特定核心的所有精靈程序,而不是整個集合。如果您的集合包含多個分片或這些分片的多個複本,每個 LIST 命令會在核心之間跳轉,並傳回不同的程序清單。建議您為了管理精靈程序,建立一個包含單一核心且沒有複本的集合,以託管精靈程序,以確保單一檢視。 |
使用 LIST 的範例
這假設您已註冊類似於以下簡單範例的精靈程序,該範例從 gettingstarted
集合讀取單一隨機文件,然後每 10 秒將其寫回相同的集合
daemon(
id="12345",
runInterval="10000",
update(gettingstarted,
random(gettingstarted,
q="*:*",
rows="1"
)
)
)
輸入
https://127.0.0.1:8983/solr/gettingstarted/stream?action=LIST
輸出
{
"result-set":{
"docs":[{
"startTime":1582820357008,
"stopTime":0,
"id":"12345",
"state":"TIMED_WAITING",
"iterations":421}
,{
"EOF":true}]}}
這顯示單一精靈程序在 12345 的 ID 下執行,並且已執行 421 次。每個程序都是 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html,而狀態是執行緒的狀態。