Alfresco 5.0交易查询

时间:2015-10-22 13:38:09

标签: solr alfresco transactional

我对Alfresco One中的索引如何处理事务性查询有一些疑问。

  1. 我们使用Alfresco 5.0.2,在文档中我可以读到:“在升级数据库时,可以添加可选索引以支持元数据查询功能。”
  2. 假设在我的model.xml中我添加了一个这样的自定义属性:

     <type name="doc:myDoc">
     <title>Document</title>
     <parent>cm:content</parent>
     <properties>
       <property name="doc:level">     
         <title>Level</title>                                                                    
         <type>d:text</type>
         <mandatory>true</mandatory>
         <index enabled="true">
            <atomic>true</atomic>
            <stored>false</stored>
            <tokenised>both</tokenised>
         </index>
       </property>
       ...    
      </properties>
    </type>                
    

    我的alfresco-global.properties上有这些集

    solr.query.cmis.queryConsistency=TRANSACTIONAL_IF_POSSIBLE
    solr.query.fts.queryConsistency=TRANSACTIONAL_IF_POSSIBLE
    system.metadata-query-indexes.ignored=false  
    

    我的第一个问题是...... Alfresco如何知道我想在DB上索引哪些属性?读取我的model.xml并仅索引我在那里指定的索引属性?索引所有自定义属性?或者我需要创建一个脚本来添加这些新索引?

    我读了脚本metadata-query-indexes.sql,但我不明白如何重写它以便为我的属性添加新索引。如果有必要这个脚本,你能给我一个我之前写过的doc:myDoc属性的例子吗?

    1. 另一个问题是关于DB不支持的查询语法,直接转到SOLR。
    2. 我在您的查询中读取了PATH,SITE,ANCESTOR或者任何d:content,d:boolean或d:any(以及其他)属性,或者它不能对数据库执行。但我不明白d:内容是什么。

      例如,一个查询(基于我之前编写的自定义属性),如TYPE:无论AND和@doc \:level:“value”被认为是d:content? BD支持此查询还是转到SOLR?

      1. 我也读了这个:
      2. “任何属性检查必须以”相同值检查“的形式表示,因为查询DB不提供与SOLR索引相同的标记化/相似性功能。例如,而不是my:property:”value“you' d必须使用= my:property:“value”和“value”必须以适当的情况写入,该值存储在DB中。“

        这意味着如果我使用=,例如执行= @ doc \:level:“value”,则不会在DB上接受此查询并转到SOLR?我无法在DB上搜索确切的值?

1 个答案:

答案 0 :(得分:0)

可以在这里找到一个很好的解释。

https://community.alfresco.com/people/andy1/blog/2017/06/19/explaining-eventual-consistency

  

当对存储库进行更改时,SOLR会通过它们获取它们   投票机制。对索引引擎进行了必要的更新   保持两者同步。这需要一些时间。索引引擎可以   很好地处于反映一些先前版本的状态   库。它最终会赶上并与之保持一致   存储库 - 假设它不会永远改变。