Skip to main content
Alfresco Search Internals0Andy HindSenior Developer, Alfrescotwitter: @andy_hind
Agenda1 Overview
 Direction
 Challenges
 Alfresco FTS
 CMIS Query LanguageOverview2Data Modelling Options<property name="cmis:name">...    <type>d:text</type>...    <index enabled="true">        <tokenised>both</tokenised><atomic>true</atomic>        <stored>false</stored>    </index>....</property>
Overview3Data Modelling Options<property name="cmis:name">...    <type>d:text</type>...    <index enabled="true">        <tokenised>both</tokenised><atomic>true</atomic>        <stored>false</stored>    </index>....</property>Type drives analysis
Overview4Data Modelling Options<property name="cmis:name">...    <type>d:text</type>...    <index enabled="true">        <tokenised>both</tokenised><atomic>true</atomic>        <stored>false</stored>    </index>....</property>truefalse
Overview5Data Modelling Options<property name="cmis:name">...    <type>d:text</type>...    <index enabled="true">        <tokenised>both</tokenised><atomic>true</atomic>        <stored>false</stored>    </index>....</property>truefalseboth
Overview6Data Modelling Options<property name="cmis:name">...    <type>d:text</type>...    <index enabled="true">        <tokenised>both</tokenised><atomic>true</atomic>        <stored>false</stored>    </index>....</property>truefalse(d:content)
Overview7Data Modelling Options<property name="cmis:name">...    <type>d:text</type>...    <index enabled="true">        <tokenised>both</tokenised><atomic>true</atomic>        <stored>false</stored>    </index>....</property>truefalse
Overview8ConfigurationIndexerAndSearcher interface and related factory
 Redirection by store protocol or value
 Factories
AVM
DM
Unindexed
All lucene based with options set via properties
 Analysis by data type and locale
alfresco/model/dataTypeAnalyzers_{local}.propertiesOverview9Configuration    <bean id="indexerAndSearcherFactory" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">        <property name="proxyInterface">            <value>org.alfresco.repo.search.impl.lucene.LuceneIndexerAndSearcher</value>        </property>        <property name="defaultBinding">            <ref bean="admLuceneIndexerAndSearcherFactory"></ref>        </property>        <property name="redirectedProtocolBindings">            <map>                <entry key="workspace">                    <ref bean="admLuceneIndexerAndSearcherFactory"></ref>                </entry>                <entry key="avm">                    <ref bean="avmLuceneIndexerAndSearcherFactory"></ref>                </entry>            </map>        </property>        <property name="redirectedStoreBindings">            <map>                <entry key="workspace://lightWeightVersionStore">                    <ref bean="admLuceneUnIndexedIndexerAndSearcherFactory"></ref>                </entry>                <entry key="workspace://version2Store">                    <ref bean="admLuceneUnIndexedIndexerAndSearcherFactory"></ref>                </entry>            </map>        </property>    </bean>
Overview10Configuration propertieslucene.maxAtomicTransformationTime=20lucene.query.maxClauses=10000 lucene.indexer.cacheEnabled=truelucene.indexer.maxDocIdCacheSize=10000lucene.indexer.maxDocumentCacheSize=100lucene.indexer.maxParentCacheSize=10000lucene.indexer.maxIsCategoryCacheSize=-1lucene.indexer.maxLinkAspectCacheSize=10000lucene.indexer.maxPathCacheSize=10000lucene.indexer.maxTypeCacheSize=10000
Overview11Configuration propertieslucene.indexer.mergerTargetIndexCount=5lucene.indexer.mergerTargetOverlayCount=5lucene.indexer.mergerTargetOverlaysBlockingFactor=1lucene.indexer.mergerMergeBlockingFactor=1lucene.indexer.maxDocsForInMemoryMerge=10000lucene.indexer.maxRamInMbForInMemoryMerge=16lucene.indexer.postSortDateTime=true lucene.indexer.defaultMLIndexAnalysisMode=EXACT_LANGUAGE_AND_ALL lucene.indexer.defaultMLSearchAnalysisMode=EXACT_LANGUAGE_AND_ALL lucene.indexer.maxFieldLength=10000
Overview12Authorization Post query filter for READ
 Configuration
system.acl.maxPermissionCheckTimeMillis=10000