Showing posts with label Solr. Show all posts
Showing posts with label Solr. Show all posts

Tuesday, May 8, 2018

Alfrescoノードブラウザ での検索


こんにちは。たなかです。
定期的に自分の中で編み物ブームが来るのですが、1ヶ月ほど前からまたブームが来ており最近は子供たちに夏用の帽子やバッグを編んでいます。
今編んでいる帽子の毛糸の素材が和紙なのですが、洗えるし軽いから風が吹いても飛ばないと店員さんに聞いて和紙の凄さを再認識しました。

さて、Alfrescoのノードブラウザで行う検索方法をいくつかピックアップしてご紹介したいと思います。
今回利用しているバージョンはAlfresco Community Edition 201707 GAです。

ノードブラウザ は、管理ツールなので管理者が利用することができます。
各ノードの情報を1ページで見ることができるため、タイプやプロパティ、アスペクト、権限情報などを一度に確認することが可能です。




ノードブラウザはShareの管理ツールとPlatformからのアクセスの2通りの方法があります。
Platformからはhttp://localhost:8080/alfresco/s/admin/からアクセスできます。
Platformのノードブラウザ ではノードやプロパティの削除ができたり、結果の最大表示件数の指定ができます。


今回はShareのノードブラウザ をご紹介したいと思います。

adminでログインし、管理ツールからノードブラウザ を開きます。


テキストエリアに検索クエリを入力して、言語を選択し検索ボタンを押すと結果がリストで表示されます。
条件をいくつか入れて絞り込みたい場合はANDを使って条件クエリを追加していきます。(ORの使用も可能です。)

この初期画面からノードを選択してツリー構造の任意のフォルダやコンテンツにたどり着くこともできるので少しだけ先にご紹介します。

ノードブラウザを選択後の初期画面(検索結果が出ている状態ですね)の名前が空になっている方のノード(参照列)を選択します。



次に子の名前がapp:company_homeのノードを選択します。



続いて子の名前がapp:sharedのノードを選択します。
app:sharedが共有フォルダになります。



さらに子の名前がcm:TestFolderInRepo(自分で作成したフォルダです)のノードを選択してみます。
フォルダかファイルかは、子のタイプがcm:folder(フォルダ)、cm:content(ファイル)かで判断できます。




各ノードのページにあるバージョン情報のプライマリパスが下でご紹介する検索のPATHで使える値になります。


◆FTS-Alfrescoによる検索



fts-alfrescoを検索言語に選んだ場合にどのような検索ができるかを紹介してみたいと思います。

●PATHの指定

まずはPATH検索で共有フォルダ配下を取得してみます。
 PATH:"/app:company_home/app:shared//*" と入力して検索!


共有フォルダ配下のフォルダやコンテンツが表示されています。
共有フォルダはよく使うので覚えておくと便利だと思います。

共有フォルダ下にあるフォルダ配下のコンテンツも表示されていますね。
/*とすると、指定ディレクトリ以下全て、という指定になります。

TestFolderInRepoフォルダ配下を指定したい場合は
 PATH:"/app:company_home/app:shared/cm:TestFolderInRepo//*" 
を入力します。
正しく取得されました。

名前

TestFolderInRepoフォルダを除外してみます。
 NOT cm:name:"TestFolderInRepo" クエリに追加します。


除外なのでNOTをつけましたが、NOTをとると・・・

指定フォルダだけ表示されました。


ワイルドカードの*(アスタリスク)を使うこともできるので、『コンテンツ』から始まるファイル名のファイルを取得してみます。
 cm:name:"コンテンツ*" 

指定フォルダ配下の『コンテンツ〜』という名前のファイルが全て表示されました。


作成日

次はフォルダやコンテンツの作成日で絞り込んでみます。
 cm:created:[MIN TO 2018-05-01] 
試しに2018-05-01までに作成されたもので絞り込みました。

MINだけでなくMAXやNOWなども使用可能です。

範囲指定ではなく日付指定の場合は
 cm:created:'2018-05-01'  のような記述で検索できます。

 

作成者

フォルダまたはコンテンツの作成者で指定してみます。
 cm:creator:"*collaborator" OR cm:creator:"*contributor" 
ANDばかりだったので、ORを使ってみました。

今回は*を検索ワードの前に使用してみました。
ここではcollaborator, contributorはもちろん、acontributorなども作成者のコンテンツが取得されました。

名前、作成日、作成者をご紹介しましたが、他にも
編集者(cm:modifier
編集日(cm:modified
タイトル(cm:title
説明(cm:description
なども利用可能です。
基本の構文を覚えてしまえば適宜変更するだけなので簡単です
 

タイプ

 TYPE:"cm:content" を入力すると、コンテンツタイプのものだけ取得できます。
cm:folderだとフォルダになります。

アスペクト

付与されたアスペクトで検索してみます。
 ASPECT:"cm:dublincore" 

noderefによる検索


検索言語にnoderefを指定して検索を行います。

フォルダやコンテンツを作成すると必ずNodeRefというものが作成されます。
そのNodeRefはユニークなのでそれがわかれば一発で目的のノードにたどり着くことができて便利です。

ちなみに、先に紹介したfts-alfrescoでもNodeRefを使って検索することができます。(私はnoderefを選択しているのでほぼ使わないですが・・・)
 ID:"workspace://SpacesStore/999xxx〜" 


Alfrescoで実行できる検索クエリはまだたくさん種類があるのですが、今回はその中から使う頻度が高いと思うものをご紹介させていただきました。

Thursday, May 26, 2016

Alfresco勉強会#33 Alfresco Solr Admin UI

こんにちは。てらしたです。昨日5/25に第33回Alfresco勉強会が開催されました。

参加していただいた方の中で、Alfresco興味あるけどまだあまり触ってないしどんな機能があるのかもよく知らないんだよね、といった方が多い場合は(もちろんそのような方も大歓迎なので)あらかじめ用意していた発表の前にAlfrescoの概要についてご紹介するようにしているのですが、今回もその流れで進めました。以下の記事にある過去の勉強会の資料を使用してご説明したので、興味がある方はご覧ください。

Alfresco勉強会#27で Alfrescoの主要機能についての紹介発表をしました
Alfresco勉強会#32 Alfresco Community 5.1.eの機能紹介

上記のAlfrescoの概要の後に、今回用意していた内容であるSolr Admin UIの開き方についてご紹介しました。また、AlfrescoではなくSolrの機能なんですが、シノニム(類義語)検索についても簡単にご紹介しました。


ここからさらに進んでSolr Admin UIの具体的な使い方や望みの検索結果を得るための設定方法を知りたい場合はSolrに関する書籍やWebサイトで調べていただくのが近道だと思います。

最後に、発表資料の中でもご紹介していますが、Alfresco 5.1のSolrに関して非常に詳しく解説されているページをご紹介しておきたいと思います。今回の発表内容はこのページのほんの一部を抜き出したものです。AlfrescoのSolrに関して大体のことは書いてあるんじゃないかと思うほど詳しく書かれているので、何か調べたい時は役に立つと思います。

Searching with Alfresco 5.1 Community

さて、次回のAlfresco勉強会は7月27日(水)です。たくさんの方のご参加お待ちしております。参加登録は以下のリンクからお願いします。

第34回 Alfresco勉強会

もちろん発表も大歓迎です。発表はできないけどこういう内容が知りたい、こんなところで困っているから教えてほしい、といった要望があればconnpassのフィードに投稿していただければと思います。

Thursday, June 25, 2015

Alfresco勉強会#28 でAlfresco 5.0の検索機能について紹介しました。

こんにちは。おおたにです。

先日、弊社オフィスにてAlfresco勉強会#28が開催されました。当日の様子はこちらの記事にも書いてある通りですが、たくさんの方が集まり色々な質問が飛び交いました。発表は先ほどの記事のメタデータテンプレートと私の「Alfresco 5.0の検索機能をみてみよう」の2本立てでした。

私の発表では、Alfresco 5.0で大幅に強化された検索機能の紹介と、その中でも特にファセット検索(検索結果の絞り込み)のGUI上での設定方法について紹介しました。簡単にフィルタを追加できるので、実際にAlfrescoを利用する際にも有用な機能かと思います。


最後に、2点ほどお知らせをば。

お知らせ1 : 
次回、第29回Alfresco勉強会は2015/08/26(水)です。参加登録はこちらからお願いします。発表します、こういう話が聞きたいです等、どしどしフィードに書き込んでください。

お知らせ2 : 
2015/07/06(火)、弊社においてミニセミナー「パターン別ドキュメント管理のキーポイント 〜Alfresco, NemakiWareなどを例として〜」が開催されます。一概に文書管理と言っても目的に応じていくつかのパターンがあり、それぞれにおいて必要とされる機能やシステム導入時に考慮すべき事項が異なってきます。本セミナーでは、AlfrescoやNemakiWareと言ったECM製品を例にいくつかのパターンの文書管理の勘所を紹介しますので、ご興味をお持ちの方は是非ご参加ください!

Tuesday, November 25, 2014

Alfresco 5.0とSolr 4を手動インストールしてみた(Alfresco 5.0.b以降)

こんにちは。大谷です。

以前、「Alfresco4.2をインストールしてみよう(手動インストール編)」という記事を書いたのですが、先ごろリリースされたAlfresco Community 5.0.bで構成に大きな変更があったので、改めて手動インストールの方法を紹介しようと思います。

※ なお、インストーラを利用したインストールは以前と変わっていませんので、「Alfresco4.0をインストールしてみよう(インストーラ編)」を参照してください。インストーラを使うとウィザードに沿っていくつかの設定項目を入力するだけでAlfrescoがインストールできますので、てっとり早く試してみたい場合はインストーラの利用をお勧めします。

「大きな変更」とはSolr 4への対応のことで、これまでの手順に加えてSolr 4のセットアップが新たに必要になりました。これまでは検索エンジンとしてLuceneを使ったインストール手順を紹介していましたが、Alfresco Community 5.0.bからはLuceneをサポートしなくなっています。なお、本記事では以下のような構成を想定しています。
  • OS : Windows
  • Java : JDK7
  • Alfresco : Alfresco Community 5.0.b
  • アプリケーションサーバ : Tomcat 7
  • RDBMS : MySQL Community Server 5.6
  • Solr 4はAlfrescoと同じTomcatインスタンス上にデプロイ
  • Alfresco - Solr間は非SSL通信


JDKのインストール


  1. こちらのサイトからJDK7をダウンロードします。Alfresco 5.0ではJDK7が必要になります。
  2. ダウンロードしたファイルを実行し、JDKをインストールします。


Tomcatのインストール


  1. Alfresco用のディレクトリを作成します。ここでは、Cドライブ直下にalfresco50bというディレクトリを作成し、以下ではALF_HOMEと表記します(ALF_HOME = C:/alfresco50b)。
  2. Apache TomcatのサイトからTomcat 7をダウンロードします。
  3. ダウンロードしたファイルをALF_HOMEに展開します。展開するとALF_HOME以下にapache-tomcat-<バージョン番号>という名前のディレクトリが作成されますので、このディレクトリをTOMCAT_HOMEと表記します(TOMCAT_HOME = C:/alfresco50b/apache-tomcat-7.0.xx)。


MySQLのインストール


  1. MySQL Developer ZoneからMySQL Community Server 5.6をダウンロードし、インストールします。また、後ほど利用するMySQL Connector/J 5.1(JDBCドライバ)をここからダウンロードします。


Tomcatの設定


  1. Alfresco Community Editionのダウンロードサイトにアクセスし、Alfresco 5.0.b Community -> alfresco-community-5.0.b.zipをダウンロードします。
  2. ダウンロードしたファイルを適当なディレクトリに展開します。このうち、alf_data, amps, bin, solr4ディレクトリをALF_HOMEにコピーし、web_serverディレクトリの中身をTOMCAT_HOMEにコピーします(webapps等既存フォルダへのファイル追加も行われます)。
  3. JDBCドライバをTomcatのクラスパスに配置します。先ほどダウンロードしたMySQL Connector/Jを展開し、mysql-connector-java-5.1.xx-bin.jarを<TOMCAT_HOME>/libにコピーします。
  4. Tomcatの設定を変更します。<TOMCAT_HOME>/conf/catalina.properties のshared.loaderプロパティを以下のように変更します。
  5. shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
  6. <TOMCAT_HOME>/conf/server.xml の8080番ポートのConnector設定を以下のように変更します。AJPを利用する場合は8009番についてもURIEncoding設定を追加します。
  7. <Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />
  8. <TOMCAT_HOME>/bin/catalina.bat に以下の行を追加してJVMの設定を変更します。JRE_HOMEや最大/最小ヒープサイズ等はPCの設定・スペックに応じて変更してください。alfresco.homeは<ALF_HOME>のパスを指定します。
  9. set JRE_HOME=C:\Program Files\Java\jdk1.7.0_xx\jre
    set JAVA_OPTS=-Xms1024m -Xmx2048m -XX:MaxPermSize=512m -server -Dalfresco.home=C:/alfresco50b -Dcom.sun.management.jmxremote
  10. <ALF_HOME>/solr4/context.xml を <TOMCAT_HOME>/conf/Catalina/localhost/solr4.xml にリネーム/コピーし、環境変数の値を環境に応じて設定します。
  11. <Environment name="solr/home"        type="java.lang.String" value="C:/alfresco50b/solr4" override="true"/>
    <Environment name="solr/model/dir"   type="java.lang.String" value="C:/alfresco50b/alf_data/solr4/model" override="true"/>
    <Environment name="solr/content/dir" type="java.lang.String" value="C:/alfresco50b/alf_data/solr4/content" override="true"/>


データベースの作成


Alfrescoはコンテンツのメタデータをデータベースで管理し、コンテンツのファイル実体をファイルシステムで管理します。データベースについてはAlfrescoが起動時に必要なテーブルを自動生成するため、まずはデータベース(とユーザ)を作成しておくだけで構いません。
  1. コマンドプロンプトで以下のコマンドを実行し、MySQLにログインします。
  2. mysql -u root -p
  3. 以下のコマンドでMySQLにAlfresco用のデータベースを作成します。この例では、データベース名をalfrescoとし、ユーザ名/パスワードもalfresco/alfrescoとなります。
  4. create database alfresco default character set utf8 collate utf8_bin;
    grant all on alfresco.* to 'alfresco'@'localhost' identified by 'alfresco' with grant option;


Solrの設定


  1. <ALF_HOME>/solr4/workspace-SpacesStore/conf/solrcore.properties と <ALF_HOME>/solr4/archive-SpacesStore/conf/solrcore.properties のdata.dir.rootプロパティ(インデックス格納先)とalfresco.secureCommsプロパティ(SSL通信か否か)を以下のように変更します。パスは環境に応じて変更してください。
  2. data.dir.root=C:/alfresco50b/alf_data/solr4/index
    alfresco.secureComms=none


外部ツールのインストール


次に、Alfrescoが利用する外部ツールのインストールを行います。ここではLibreOffice, ImageMagick, Ghostscript, SWFTools(pdf2swf)について説明します。この4つのツールの用途は以下のとおりですので、必要に応じてインストール、設定を行ってください。
  • LibreOffice : Alfrescoでファイルフォーマット変換を行う際に使います。PDF変換機能などを利用する場合に設定する必要があります。(手元の環境では少し古い4.1.0.4を利用)
  • ImageMagick : コンテンツのサムネイルやプレビューを生成する際に使います。(手元の環境では6.8.6.9を利用)
  • Ghostscript : ImageMagickが間接的に利用します。(手元の環境では9.10を利用)
  • SWFTools : 一部コンテンツのプレビューを生成する際に使います。(手元の環境では0.9.0を利用)


Alfrescoの設定


続いて、Alfrescoの設定を行います。大きく分けると、データベース接続設定、ファイルシステムの設定、外部ツール連携設定の3つがあります。
  1. <TOMCAT_HOME>/shared/classes/alfresco-global.properties.sample をalfresco-global.propertiesにリネームします。以下のプロパティ設定は全てalfresco-global.propertiesに行います。
  2. データベース接続設定、ファイルシステムの設定について、以下のように設定します(全てデフォルトでコメントアウトされているので、コメントアウトを外して環境に合わせて設定変更してください)。
  3. #
    # Sample custom content and index data location
    #
    dir.root=C:/alfresco50b/alf_data
    
    #
    # Sample database connection properties
    #
    db.username=alfresco
    db.password=alfresco
    
    #
    # MySQL connection
    #
    db.driver=org.gjt.mm.mysql.Driver
    db.url=jdbc:mysql://localhost/alfresco?useUnicode=yes&characterEncoding=UTF-8
  4. 検索エンジンとしてSolr 4を使い、Alfrescoとの通信を非SSL化するために以下の設定を追記します。
  5. index.subsystem.name=solr4
    solr.secureComms=none
  6. 外部ツールとの連携について、環境に合わせて以下のように設定します(コメントアウトされているものもあるので適宜コメントアウトを外すなりして設定変更してください)。
  7. ooo.exe=C:/Program Files (x86)/LibreOffice 4/program/soffice
    ooo.enabled=true
    img.root=C:/Program Files/ImageMagick-6.8.6-Q16
    img.exe=${img.root}/convert.exe
    img.gslib=C:/Program Files/gs/gs9.10/lib
    swf.exe=c:/SWFTools/pdf2swf.exe


Alfrescoの初回起動と追加の設定


最後に、一度Alfrescoを起動してWARファイルを展開し、その展開されたファイルの設定を修正します。
  1. <TOMCAT_HOME>/bin/startup.bat を実行してAlfrescoを起動します。
  2. コンソールの出力内容(もしくはalfresco.logやcatalina.out)をチェックします。初回起動時はデータベースにテーブルを追加する作業やwarファイルを展開する作業がありますので時間がかかりますが、最終的にはExceptionが断続的に出力される状態となります(一部SSL通信の設定が残っているため)
  3. <TOMCAT_HOME>/bin/shutdown.bat を実行してAlfrescoを停止します。
  4. <TOMCAT_HOME>/webapps/alfresco/WEB-INF/web.xml を編集し、SSL設定に関する以下の箇所をコメントアウトします。
  5. <security-constraint>
       <web-resource-collection>
          <web-resource-name>SOLR</web-resource-name>
          <url-pattern>/service/api/solr/*</url-pattern>
       </web-resource-collection>
    
       <auth-constraint>
          <role-name>repoclient</role-name>
       </auth-constraint>
    
       <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
    </security-constraint>
    
    <security-constraint>
       <web-resource-collection>
          <web-resource-name>SOLR</web-resource-name>
          <url-pattern>/s/api/solr/*</url-pattern>
       </web-resource-collection>
    
       <auth-constraint>
          <role-name>repoclient</role-name>
       </auth-constraint>
    
       <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
    </security-constraint>
    
    <security-constraint>
       <web-resource-collection>
          <web-resource-name>SOLR</web-resource-name>
          <url-pattern>/wcservice/api/solr/*</url-pattern>
       </web-resource-collection>
    
       <auth-constraint>
          <role-name>repoclient</role-name>
       </auth-constraint>
    
       <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
    </security-constraint>
    
    <security-constraint>
       <web-resource-collection>
          <web-resource-name>SOLR</web-resource-name>
          <url-pattern>/wcs/api/solr/*</url-pattern>
       </web-resource-collection>
    
       <auth-constraint>
          <role-name>repoclient</role-name>
       </auth-constraint>
    
       <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
    </security-constraint>
    
    <login-config>
       <auth-method>CLIENT-CERT</auth-method>
       <realm-name>Repository</realm-name>
    </login-config>
    
    <security-role>
      <role-name>repoclient</role-name>
    </security-role>
  6. <TOMCAT_HOME>/webapps/solr4/WEB-INF/web.xml を編集し、SSL設定に関する以下の箇所をコメントアウトします。
  7. <security-constraint>
        <web-resource-collection>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>repository</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    
    <login-config>
        <auth-method>CLIENT-CERT</auth-method>
        <realm-name>Solr</realm-name>
    </login-config>
    
    <security-role>
       <role-name>repository</role-name>
    </security-role>


動作確認


以上で設定は完了です。Alfrescoを起動して動作確認してみましょう。

  1. <TOMCAT_HOME>/bin/startup.bat を実行してAlfrescoを起動します。
  2. コンソールの出力内容(もしくはalfresco.logやcatalina.out)をチェックします。正常に起動すると、コンソールもしくはログに"Server startup in xxxxxx ms"と表示されます。
  3. 、ブラウザで http://localhost:8080/share にアクセスします。管理者ユーザのデフォルトユーザ名/パスワードは、admin/adminになりますのでそれを入力します。

  4. ログインに成功し、ユーザダッシュボード画面が表示されたら動作確認完了です!

  5. 念のため、Solrにもアクセスしてみましょう。URLは http://localhost:8080/solr4 です。以下の画面が表示されたらOKです。

以上がAlfresco 5.0(5.0.b以降)をインストールする手順となります。本番環境構築の際には、Solr 4の別建てやAlfresco - Solr間のSSL化など、さらに考慮する必要のある事項がありますが、本質的にはこの手順でいけると思います。

Alfresco 5.0の新機能については本ブログの記事「Alfresco 5.0.bの機能紹介」をチェックしてみてください。また、基本的な使い方については「Alfresco 4.2の使い方 - ユーザ管理・グループ管理」、「Alfresco 4.2の使い方 - リポジトリとサイトの準備をしよう」あたりが参考になるかと思いますので是非ご一読ください。