问题标签 [solr8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
29 浏览

solr - 限制 SOLR 中的删除收集操作

我有 2 个 SOLR 用户 - UserA 和 UserB。我想限制某些 SOLR 集合的集合访问权限,以便只有 UserA 可以访问这些集合。我运行了以下命令来实现它:

将用户角色与用户名绑定

更新收藏权限

我观察到,在运行这些命令后,只有 UserA 能够使用选择处理程序访问所述集合中的数据,UserB 在查询数据时收到 403 错误,这是意料之中的。但 UserB 仍然能够删除集合。有没有办法我们甚至可以限制对 UserA 的删除访问权限,以便 UserB 无法删除属于 userA 的集合?

0 投票
1 回答
75 浏览

solr - Solr8-stored=false 字段显示在响应中

我有设置为“stored=false”的字段,但它们仍然显示在响应中。我检查了“useDocValuesAsStored”是否设置为 false。知道为什么这些字段会出现在响应中。

0 投票
0 回答
196 浏览

solr - 如何在 Solr 中进行部分更新?

根据 solr 文档

以原子方式更新文档的核心功能要求架构中的所有字段都必须配置为已存储 (stored="true") 或 docValues (docValues="true"),但 <copyField/

必须存储 schema.xml 中的所有字段。我创建了两个核心 test_core_1 和 test_core_2。

这是test_core_1 架构

这是test_core_2 模式

我可以只更新第一个核心 (test_core_1) 中的名称字段,但对于第二个核心,我得到了一个错误。

正如我们所看到的,我在两个核心的模式中都有非存储和非 docValues 字段,如name,差异与nest_pathversionroot相关。那么我怎么可能在第一个核心中更新名称(我的意思是更新部分文档或原子更新),但我从第二个核心得到了这个错误。

来自 http://localhost:8983/solr 的服务器错误:此架构不支持对嵌套文档的部分更新。请参阅参考指南。

根据文档,我必须从他们两个那里得到错误,我对 solr 中的这个主题感到困惑。谁能解释一下?

这是我的代码

0 投票
0 回答
23 浏览

wildcard - Solr 8.3.0 SynonymGraphFilter 和通配符

是否可以在 synonyms.txt 文件中使用通配符?例如

q:AWS synonym.txt 看起来像AWS,Webservice*匹配webservicewebservices

q:changemanagement synonym.txt 看起来像changemanagement,change manager,chanagemanage*匹配changemanagerchangemangerin

我想使用 SynonymGraphFilter 的选项,expand=false因为expand=true我得到的分数太高。

我的索引时间和查询时间分析器如下所示:

我不确定在索引时是否也必须使用 SynonymGraphFilter。

感谢帮助!

0 投票
0 回答
47 浏览

solr - Solr [8.8] 重启后将所有集合移动到一个节点

我配置了一个 Solr (8.8.2) 集群,每个集群有 2 个节点,每个节点位于 2 台机器(1 个分片)中。

最初,我手动在 4 个节点中分发集合。但是当我停止所有节点并重新启动它们时,所有集合都会自动移动到两个节点。

重启前: 在此处输入图像描述

重启后: 在此处输入图像描述

我对 Solr 配置真的很陌生,请帮我找到解决方案。提前致谢。

0 投票
0 回答
31 浏览

solr - Solr 副本移动到活动节点

我们有 2 个集群,每个集群有 2 个节点。用 N1 和 N2 说 C1,用 N1 和 N2 说 C2。C1- xxx.xxx.x.53 和 C2 - xxx.xxx.x.42 N1:9883_solr 和 N2:3883_solr。我们总共有 4 个集合分布在 2 个集群中。

我们使用 autoAddReplica=false 创建了集合。命令是这样的。
对于集群 1 节点 1 Collection1

http://xxx.xxx.x.53:3883/solr/admin/collections?action=CREATE&numshards=1&autoAddReplicas=false&name=TEST&collection.configName=test-collection&createNodeSet=xxx.xxx.x.53:3883_solr&wt=xml

对于集群 2 节点 1 集合 1

http://xxx.xxx.x.42:3883/solr/admin/collections?action=CREATE&numshards=1&autoAddReplicas=false&name=TEST&node=xxx.xxx.x.42:3883_solr&wt=xml

我们已经遵循了 4 个集合,现在节点将是这样的节点详细信息

发出暂停触发器以禁用自动添加副本。

  1. 集群 2 - 节点 9883 已停止 - 副本仍然存在 - 节点已死
  2. 集群 2 - 节点 3883 已停止 - 副本未移动,保留在那里 - 节点已死亡。
  3. 集群 2 - 节点 9883 已启动 - 2 个副本从 3883 移动到 9883。所以在 9883 中总共有 4 个。
  4. 集群 2 - 节点 3883 已启动 - 所有副本 (4) 现在已移动到 3883

为 .autoAddReplica 执行暂停触发器 请建议如何在新节点出现时禁用此副本移动。提前感谢您的建议。

0 投票
0 回答
27 浏览

solr - 如何在 solr 的联接查询中比较来自不同集合的两个字段?

我在 solr 中有两个集合:message_colletion 和参与者集合。我想加入查询以在这两个集合之间进行内部连接。除了字段,我想在连接查询中使用,我可以将第一个集合中的字段与第二个集合中的字段进行比较吗?例如:message_collection:sendTimeparticipant_collection:joinTime query--> {!join from=.... fromIndex=.... to=...}sendTime:[joinTime to *}

0 投票
0 回答
15 浏览

solr - Solr8.8 代数在每次索引后呈指数增长

我最近升级到 Solr 版本 8.8。我正在使用 DIH。我没有使用 SolrCloud。我有多个核心,每次索引后其世代数都会增加 1。但只有 1 个核心以指数方式增加代数。我不知道怎么做。例如,仅索引3次后,世代数为93。所有文档都是正确的。我应该担心吗?请提出一些见解。谢谢!

0 投票
1 回答
28 浏览

indexing - Solr-8.9.0 索引目录大小减小

环境 - solr-8.9.0,jdk-11.0.12

我使用以下命令来计算 solr 中的索引。

但是当我在一段时间(5 小时)后再次执行上述命令时,索引大小减少到之前计算的索引大小的 64%。这可能是什么原因?是计算指数的正确方法还是有其他方法?

0 投票
0 回答
35 浏览

solr - solr 8 中的查询时间增加

在将 solr 从 6.5 升级到 8.7 时,我们观察到查询时间增加了 40%。

在 solr 8.7 上,优化和未优化索引之间的差异也非常大。优化时为 350 毫秒,未优化时为 650 毫秒。在优化和未优化的核心中,差异仅为 5 GB。优化索引中的段数为 1,未优化索引为 20。

我想问一下,这是 solr 8.7 上的正常行为,还是我们忘记添加一些设置?Pleas 还告诉我们如何减少未优化核心的响应时间。

规格 我们使用主从架构,轮询间隔为 3 小时 RAM- 96 GB CPU-14 Heap-30 GB Index Size-95 GB Segments size-20

合并策略: mergePolicyFactory:org.apache.solr.index.TieredMergePolicyFactory maxMergeAtOnce:5 segmentPerTier:3