LoginSignup
4
2

More than 5 years have passed since last update.

Fessにおけるドキュメントクロールの拡張子絞り込み検索

Last updated at Posted at 2018-06-04

ローカル+ファイルサーバーのドキュメント検索のため、下記のページを参考にHTML+Javascriptをカスタマイズして検索画面を作成していたのだが…「拡張子絞り込み」の実装で躓いたので備忘もかねてまとめておく。

Fess で作る Elasticsearch ベースの検索サーバー 〜 API 編

1.状況

そもそもExtra Query関連のドキュメントが見つけられなかったのだが※、何処かにまとまっているのだろうか。。

Fess 12.1現在、ここ(検索API)以外にそれっぽい記載がある場所がみつけられず…

デフォルトのFess検索画面を参考に、Word/Excel拡張子指定には下記をクエリパラメータに付与すれば良いことは解ったが、ex_qに何を指定できるのか全然わからない。

Wordファイル検索時
~&ex_q=filetype%3Aword
Excelファイル検索時
~&ex_q=filetype%3Aexcel

しかもこれではxlsとxlsx、docとdocxの区別も付けられない様子。

2.対応

Fessのソースリポジトリにマッピングを定義しているらしき場所を発見。
(自分の場合は\app\WEB-INF\env\crawler\resources配下にあった)

どうやらMIMEタイプ名(参考:MIMEタイプ名)にて記載されているようなので、分類したい箇所の名称を変えてみる。

app.xml(Before)
        <postConstruct name="add">
            <arg>"application/vnd.ms-excel"</arg>
            <arg>"excel"</arg>
        </postConstruct>

         ・・・

        <postConstruct name="add">
            <arg>"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"</arg>
            <arg>"excel"</arg>
        </postConstruct>

app.xml(After)
        <postConstruct name="add">
            <arg>"application/vnd.ms-excel"</arg>
            <arg>"xls"</arg>
        </postConstruct>

         ・・・

        <postConstruct name="add">
            <arg>"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"</arg>
            <arg>"xlsx"</arg>
        </postConstruct>

これで検索クエリを書き換えてあげれば完了。

Excel(xls)ファイル検索時
~&ex_q=filetype%3Axls
Excel(xlsx)ファイル検索時
~&ex_q=filetype%3Axlsx

*追記

(2018-06-05)

引用しておきながらよく読めていなかった…検索クエリに直接mimetypeを指定できるので、今回の既存マッピングの書き換え手順をすっ飛ばして

~&ex_q=mimetype%3A...

と指定するのもあり。

(再)参考:検索API
※"各要素については以下の通りです。"の箇所

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2