More Related Content
KEY
PPTX
alfresco_study_4_alfresco4_solr_integration PDF
Alfresco勉強会#24 コンテンツのライフサイクル PPT
KEY
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方 PDF
Alfresco勉強会#18 alfrescoのバックアップとリストア PDF
20130606 alfresco study16audit PDF
What's hot
PDF
Alfresco勉強会#15 alfresco 4をインストールしてみよう! PDF
PDF
PPTX
Alfresco勉強会#26 alfresco community 5.0でssoを設定する PDF
Ssl証明書を設定したらapacheが起動しない? PDF
OSC 2014 Tokyo/Spring 「Zabbix 2.2を使ってみよう」 PDF
超簡単!Apache TomcatをWindowsにインストール PPTX
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~ PDF
PDF
超簡単! JettyをWindowsにインストール PDF
PDF
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会 PPTX
PDF
超簡単!Apache httpサーバをWindows Serverにインストール PPTX
Alfresco勉強会#31 alfresco 5.0にウイルススキャン機能を実装してみる PPTX
ZOZOTOWNで最大級のトラフィックを記録する福袋発売イベントで実施した負荷対策と、当日の監視体制について PDF
PDF
Analyzing Oracle Database hang issues using various diagnostics. PPTX
Alfresco Javascript Consoleのご紹介 PDF
Viewers also liked
PDF
20130801 alfresco study17customizemap PDF
20130509 alfresco study15permission PDF
PDF
Alfresco onlineeditbywebdav 2013 PDF
第7回Alfresco勉強会資料 カスタムのオンライン編集 PDF
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発 PDF
20130925 alfresco study18performancetuning PDF
PDF
Alfresco勉強会#28 メタデータテンプレート PPTX
Alfresco study32 introducing5.1 PDF
Alfresco study29 activitymonitoring PDF
Alfresco勉強会#33 Alfresco Solr Admin UI PDF
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと PDF
【第1.5回勉強会】後編 alfrescoの基本操作 PDF
Alfresco study37 alfresco_ng2_components PDF
Alfresco勉強会#35 AlfrescoのアクティビティフィードをSlackに送るカスタマイズ PPTX
Alfresco勉強会#28 alfresco 5.0の検索機能をみてみよう PPTX
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた PPTX
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう PPTX
Alfresco Bulk Import toolのご紹介 Similar to AlfrescoとSolr(後編)
PPTX
PPTX
PPTX
PPTX
Lucene/Solr Revolution 2016 参加レポート PDF
PPTX
LIFULL HOME'SでのSolrの構成と運用の変遷 PPTX
Alfresco study3 alfresco4 PDF
PPTX
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日) KEY
PDF
PPTX
PPTX
PDF
ODP
pixiv サイバーエージェント共同勉強会 solr導入記 More from Ashitaba YOSHIOKA
PPTX
メタプログラミングRuby勉強会#7(fluentプラグイン) PPTX
PPTX
PPTX
PPTX
PPT
PPT
KEY
KEY
KEY
KEY
KEY
KEY
KEY
Alfresco Java Foundation API KEY
Alfresco and Web Script (English) KEY
KEY
KEY
AlfrescoとSolr(後編)
- 1.
- 2.
- 3.
自己紹介
‣ mryoshio
→ A社の社員
→ AlfrescoやLiferayのコンサルタント
→ ソースコードを読んだりカスタマイズしたりサポートしたり
→ Twitterとか色々なところにいます
→ もう少しPythonで遊びたいと思いつつできてない
→ 最近はこたつに入って仕事してます
- 4.
- 5.
AlfrescoとSolr
‣ Alfrescoとは
→ 英Alfresco社が提供するオープンソースソフトウェア。企業規模のコンテンツ
管理を行える。それ以外に,Webコンテンツ管理やコラボレーションを低コ
ストで行える
‣ Solrとは
→ Apache Luceneプロジェクトから派生した人気のある検索プラットフォー
ム。ヒット部分のハイライト,ファセットサーチなど豊富な機能がある。ス
ケーラブルで分散した検索やインデクスレプリケーションも可能
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
Web Script
‣ AlfrescoSolr PluginへAlfrescoの情報を渡す
→ webapps/alfresco/WEB-INF/classes/alfresco/templates/
webscripts/org/alfresco/repository/solr/に設定ファイル群が存在
aclChangeSets,acls,aclsReaders
model,modelsdiff
nodeContent,nodes,nodesMetaData
transactions
- 12.
Javaクラスの指定
‣ 各Web Scriptで利用するJavaクラスの指定
→ webapps/alfresco/WEB-INF/classes/alfresco/web-scripts-
application-context.xml
L.1431辺り
<!-- -->
<!-- SOLR -->
<!-- -->
<!-- -->
<bean id="solrSerializer" class="org.alfresco.repo.web.scripts.solr.SOLRSerializer" init-method="init">
<property name="dictionaryService" ref="dictionaryService"/>
<property name="namespaceService" ref="namespaceService"/>
</bean>
<bean id="webscript.org.alfresco.repository.solr.aclChangeSets.get"
class="org.alfresco.repo.web.scripts.solr.AclChangeSetsGet"
parent="webscript">
<property name="solrTrackingComponent" ref="solrTrackingComponent"/>
</bean>
(後略)
- 13.
aclChangeSets
‣ 利用ファイル群
→aclChangeSets.get.desc.xml(Web Script description)
→ aclChangeSets.get.json.ftl(FreeMarker Template)
→ org.alfresco.repo.web.scripts.solr.AclChangeSetsGet(Java)
‣ 目的
→ 特定時間以後のACL変更(List<AclChangeSet>)を取得する
‣ 引数
→ fromId,fromTime,maxResults(desc.xml)
→ toId,toTime(隠しパラメータ)
- 14.
aclChangeSets(Call Tree)
‣ L.63AclChangeSetsGet#executeImpl
→ L.157 SOLRTrackingComponentImpl#getAclChangeSets
→ L.88 SOLRDAOImpl#getAclChangeSets
この後,iBatis経由でDBから値を取得
‣ solr-common-SqlMap.xml
→ select_ChangeSets_Summary
返り値がAclChangeSetに格納される
- 15.
acls
‣ 利用ファイル群
→ acls.post.desc.xml(Web Script description)
→ acls.post.json.ftl(FreeMarker Template)
→ org.alfresco.repo.web.scripts.solr.AclsGet(Java)
‣ 目的
→ 与えられたACL変更に対応するACLを取得する
‣ 引数
→ fromId,maxResults(desc.xml)
- 16.
acls(Call Tree)
‣ L.60AclsGet#executeImpl
→ L.113 #buildModel
→ L.171 SOLRTrackingComponentImpl#getAcls
→ L.115 SOLRDAOImpl#getAcls
この後、iBatis経由でDBから値を取得
‣ solr-common-SqlMap.xml
→ select_AclsByChangeSetIds
返り値がAclに格納される
- 17.
aclsReaders
‣ 利用ファイル群
→ aclsReaders.post.desc.xml(Web Script description)
→ aclsReaders.post.json.ftl(FreeMarker Template)
→ org.alfresco.repo.web.scripts.solr.AclsReadersGet(Java)
‣ 目的
→ 与えられたACLのreaderを取得する
‣ 引数
- 18.
aclsReaders(Call Tree)
‣ L.60AclsReadersGet#executeImpl
→ L.107 #buildModel
→ L.199 SOLRTrackingComponentImpl#getAclsReaders
→ L.1066 AclDAOImpl#getAccessControlList
→ #getAccessControlListImpl
return AccessControlList
- 19.
model
‣ 利用ファイル群
→model.get.desc.xml(Web Script description)
→ org.alfresco.repo.web.scripts.solr.AlfrescoModelGet(Java)
‣ 目的
→ 与えられた名称のモデルを取得する
‣ 引数
→ modelQName(隠しパラメータ)
- 20.
model(Call Tree)
‣ L.46AlfrescoModelGet#execute
→ L.70 #handle
→ L.746 SOLRTrackingComponentImpl#getModel
→ L.75 DictionaryComponent#getModel
→ L.871 DictionaryDAOImpl#getModel
→ #getCompiledModel
return CompiledModel
- 21.
modelsdiff
‣ 利用ファイル群
→modelsdiff.post.desc.xml(Web Script description)
→ modelsdiff.post.json.ftl(FreeMarker Template)
→ org.alfresco.repo.web.scripts.solr.AlfrescoModelsDiff(Java)
‣ 目的
→ 与えられたモデルの差分を取得する
‣ 引数
→ models(JSONArray,隠しパラメータ)
- 22.
modelsdiff(Call Tree)
‣ L.42AlfrescoModelsDiff#executeImpl
→ L.77 #buildModel
→ L.768 SOLRTrackingComponentImpl#getModelDiffs
→ L.67 DictionaryComponent#getAllModels
→ L.791 DictionaryDAOImpl#getModels
→ #getCompiledModels
- 23.
nodeContent
‣ 利用ファイル群
→nodeContent.get.desc.xml(Web Script description)
→ org.alfresco.repo.web.scripts.solr.NodeContentGet(Java)
‣ 目的
→ 与えられたノード属性の値をテキストで取得する
‣ 引数
→ nodeId,propertyQName(desc.xml)
- 24.
- 25.
nodes
‣ 利用ファイル群
→nodes.post.desc.xml(Web Script description)
→ nodes.post.json.ftl(FreeMarker Template)
→ org.alfresco.repo.web.scripts.solr.NodesGet(Java)
‣ 目的
→ トランザクション内で更新/削除されたノードを取得する
‣ 引数
→ txnIds,fromTxnId,toTxnId,fromNodeId,toNodeId
→ excludeAspects,includeAspectsなど(全て隠しパラメータ)
- 26.
nodes(Call Tree)
‣ L.183NodesGet#executeImpl
→ L.296 SOLRTrackingComponentImpl#getNodes
→ L.149/L.155 SOLRDAOImpl#getNodes
この後、iBatis経由でDBから値を取得
‣ solr-common-SqlMap.xml
→ select_Txn_Nodes
返り値がNodeに格納される
- 27.
nodesMetaData
‣ 利用ファイル群
→nodesMetaData.post.desc.xml(Web Script description)
→ nodesMetaData.post.json.ftl(FreeMarker Template)
→ org.alfresco.repo.web.scripts.solr.NodesMetaDataGet(Java)
‣ 目的
→ 与えられたノードのメタデータを取得する
‣ 引数
→ nodeIds,fromNodeId,toNodeId,maxResults
→ includeAclId,includeAspectsなど(全て隠しパラメータ)
- 28.
nodesMetaData(Call Tree)
‣ L.181NodesMetaDataGet#executeImpl
→ L.735 SOLRTrackingComponentImpl#getNodesMetadata
→ NodeMetaDataQueryRowHandler#processResult
callbackを使って最終的にMetaDataを取得
- 29.
transactions
‣ 利用ファイル群
→ transactions.get.desc.xml(Web Script description)
→ transactions.get.json.ftl(FreeMarker Template)
→ org.alfresco.repo.web.scripts.solr.TransactionsGet(Java)
‣ 目的
→ 与えられた時間に含まれるトランザクションを取得する
‣ 引数
→ fromTxnId,fromCommitTime,maxResults(desc.xml)
→ minTxnId,maxTxnId,toCommitTime(隠しパラメータ)
- 30.
transactions(Call Tree)
‣ L.68TransactionsGet#executeImpl
→ L.280 SOLRTrackingComponentImpl#getTransactions
→ L.136 SOLRDAOImpl#getTransactions
この後、iBatis経由でDBから値を取得
‣ solr-common-SqlMap.xml
→ select_Txns
return Transaction
- 31.
- 32.
参考
‣ ソースコード関連
→https://wiki.alfresco.com/wiki/
Alfresco_SVN_Development_Environment
→ http://wiki.alfresco.com/wiki/Source_Code
- 33.