如何在Alfresco中检查更多损坏的Solr索引节点?

时间:2016-08-09 22:53:26

标签: solr alfresco

我们在DIT中发现了一个错误,其中CMIS查询在archive:// SpacesStore中返回了许多看似有效的节点中的节点。 使用CMIS工作台,当我点击存档节点的objectId时,CMIS工作台表示无法找到该节点。

in_tree中使用的查询如下:

SELECT * FROM <model> WHERE IN_TREE('6fd7f269-9d44-40a3-9152-1b89d6a3d07c')

Alfresco支持表示我们的Solr索引可能已损坏,我们可以简单地重新索引。我更喜欢通过手术解决问题,所以我最终做到了这一点:

  1. 在数据库中查找节点ID,并在每个节点上运行reindex脚本。 select n.id as node_id, n.UUID from alf_node n where n.uuid in ('a06d87d6-e49a-4f85-b5c3-2e68a81ad760', 'b6bb26d1-aaf2-4a80-8ce9-8aae93f89d9d', '10951fbd-f2ab-4247-89c1-b050aa00a4f9')
  2. 我发现每个uuid有两个db节点ID,所以我做了一些挖掘。 1724775 b6bb26d1-aaf2-4a80-8ce9-8aae93f89d9d 1724776 b6bb26d1-aaf2-4a80-8ce9-8aae93f89d9d 1726270 10951fbd-f2ab-4247-89c1-b050aa00a4f9 1726271 10951fbd-f2ab-4247-89c1-b050aa00a4f9 1726260 a06d87d6-e49a-4f85-b5c3-2e68a81ad760 1726261 a06d87d6-e49a-4f85-b5c3-2e68a81ad760
  3. 这些节点有一些属性,其中string_value以'workspace'开头 select n.id as node_id, n.uuid from alf_node_properties p, alf_node where n.uuid in ('a06d87d6-e49a-4f85-b5c3-2e68a81ad760' 'b6bb26d1-aaf2-4a80-8ce9-8aae93f89d9d', '10951fbd-f2ab-4247-89c1-b050aa00a4f9') and p.STRING_VALUE like 'workspace%' and n.id = p.node_id;
  4. 我使用这些节点ID发送给Solr 1724775 b6bb26d1-aaf2-4a80-8ce9-8aae93f89d9d 1726270 10951fbd-f2ab-4247-89c1-b050aa00a4f9 1726260 a06d87d6-e49a-4f85-b5c3-2e68a81ad760
  5. http://<solr_host>/solr/admin/cores?action=REINDEX&nodeid=1724775 http://<solr_host>/solr/admin/cores?action=REINDEX&nodeid=1726270 http://<solr_host>/solr/admin/cores?action=REINDEX&nodeid=1726260

    1. 每次我收到此回复:
    2. <response>
      <lst name="responseHeader">
      <int name="status">0</int>
      <int name="QTime">0</int>
      </lst>
      </response>
      
      1. 重新运行 SELECT * FROM <model> WHERE IN_TREE('6fd7f269-9d44-40a3-9152-1b89d6a3d07c') 在CMIS工作台中,最大命中数为1000。 滚动查看结果,找不到存档记录。
      2. 我清理了从CMIS搜索中找到的损坏的索引节点,但是如何在整个索引中找到这些损坏的节点?我尝试在搜索中添加条件以仅指定那些节点,但这只会导致空结果集。任何人都可以解释这可能发生的原因和原因如何在Alfresco中检查更多损坏的Solr索引节点?

        顺便说一下,我们仍在使用Alfresco 4.2和Solr 1

0 个答案:

没有答案