流请求处理器 API
/stream
请求处理器除了运行流式表达式之外,还允许您查找可用的表达式,并允许您控制任何已注册的守护进程的行为。
此 API 不遵循 v2 API 结构。 |
PLUGINS:列出所有已注册的表达式
列出所有已注册且可用的流式表达式。这包括 StreamHandler 注册的默认表达式以及您已注册的任何表达式。
/stream?action=PLUGINS
使用 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}]}}
这显示一个在 ID 为 12345 的情况下运行的守护进程,并且它已运行 421 次。每个进程都是一个 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html,并且状态是 Thread 的状态。