Git Product home page Git Product logo

codelibs / fess Goto Github PK

View Code? Open in Web Editor NEW
960.0 62.0 167.0 49.1 MB

Fess is very powerful and easily deployable Enterprise Search Server.

Home Page: https://fess.codelibs.org

License: Apache License 2.0

Shell 0.20% Java 98.67% CSS 0.09% JavaScript 0.82% Batchfile 0.10% HTML 0.12% Handlebars 0.01%
java elasticsearch full-text-search lucene crawler enterprise-search search-engine fulltext-search search

fess's Introduction

Fess Enterprise Search Server Tweet

Java CI with Maven Maven Central License

Overview

Fess is a very powerful and easily deployable Enterprise Search Server. You can quickly install and run Fess on any platform where you can run the Java Runtime Environment. Fess is provided under the Apache License 2.0.

Fess is based on OpenSearch/Elasticsearch, but knowledge/experience about OpenSearch/Elasticsearch is not required. Fess provides an easy to use Administration GUI to configure the system via your browser. Fess also contains a Crawler, which can crawl documents on a web server, file system, or Data Store (such as a CSV or database). Many file formats are supported including (but not limited to): Microsoft Office, PDF, and zip.

Fess Site Search is a free alternative to Google Site Search. For more details, see the FSS JS Generator documentation.

Website

fess.codelibs.org

Issues/Questions

discuss.codelibs.org

Getting Started

There are 2 ways to try Fess. The first is to download and install yourself. The second is to use Docker.

Download and Install/Run

Fess 14.12 is now available and can be downloaded on the Releases page. Downloads come in 3 flavors: deb, rpm, zip.

The following commands show how to use the zip download:

$ unzip fess-14.12.x.zip
$ cd fess-14.12.x
$ ./bin/fess

For more details, see the Installation Guide.

Docker

We provide Docker images on ghcr.io. We also provide a Docker Compose (YAML) file in this repository.

Browser UI

Search UI

Admin UI

You can register crawling targets in the Admin UI on the (Web, File, Data Store) crawler configuration pages, and then start the Crawler manually on the Scheduler page.

Migration from another search provider

Please see MIGRATION.md.

Data Store

Currently, Fess supports crawling the following storage locations and APIs:

Theme

Ingest

Script

Localization

Japanese

Korean

Development Information

Get Source Code

  1. Clone Fess's repository:

    $ cd ~/workspace
    $ git clone https://github.com/codelibs/fess.git
    
  2. Import the cloned repository as a Maven project on Eclipse or another IDE.

Setup for OpenSearch Plugins

Run antrun:run to download plugins into the plugins directory:

$ mvn antrun:run

Run Fess

Run or debug org.codelibs.fess.FessBoot on your IDE, and then access http://localhost:8080/

Build Package

Run the package goal and then the release file will be created in target/releases.

$ mvn package
$ mvn rpm:rpm   # .rpm package
$ mvn jdeb:jdeb # .deb package

Generate Source Code

$ mvn dbflute:download # (one time command)
$ mvn dbflute:freegen
$ mvn license:format

Integration Tests

Launch Fess Server and run the following command:

$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201"

To run a single test case, you can use:

$ mvn test -P integrationTests -Dtest.fess.url="http://localhost:8080" -Dtest.search_engine.url="http://localhost:9201" -Dtest=SearchApiTests

Translate In Your Language

Fess is internationalized software.

If you want to add labels/messages for your language, please translate properties file and then rename to fess_*_[lang].properties.

For search/index analyzer, if doc.json contains lang_[lang] for your language, please modify the analyzer for your language. For more details about Analyzers, see the Elasticsearch documentation.

We welcome pull requests for your language.

Powered By

fess's People

Contributors

3rdarm avatar caugner avatar deka0106 avatar dependabot[bot] avatar eyada avatar hasegawatomofumi avatar hieu1-hoangtrung avatar igarash1 avatar jasongwq avatar jdeathe avatar jflute avatar jhult avatar jongsung-park avatar keiichiw avatar kw-udon avatar ma2ta2 avatar ma2tani avatar marevol avatar moosh-be avatar morishima-k avatar nocode2k avatar nullpos avatar shatake avatar shiena avatar stepanov-sergey avatar stweil avatar tairaku avatar tanksuzuki avatar yfujita avatar yutamatsushima avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fess's Issues

フィールド名管理を一箇所にまとめる

Solrのフィールド名が散在しているので、FieldHelperを作成してそこから取得できるようにする。

  • clickCount_i
  • favoriteCount_i
  • screenshot_s_s
  • cid_s_s
  • expires_dt
    などのダイナミックフィールドで扱っているものが対象。

fileプロトコルのURLをプロキシする

現状、Javaアプレットでコンテンツをクライアントに直接開かせているが、Fessサーバでプロキシしてコンテンツを返すのをデフォルトで用意する。

ドキュメントIDの導入

検索画面でドキュメントへのアクセスはURLをベースにドキュメントを
特定して扱っているが、docIdで検索画面とのやりとりを行う。
URLだけでのやりとりは、

  • URLが長い場合にGETのリクエストでは処理できない
  • #18 はURLではなく、Solr上のドキュメント情報が必要。
    あたりの解決が困難なので、docIdでSolrに引きに行く。

期限切れドキュメントの処理変更

セッション情報に基づいて、期限切れドキュメントを削除しているが、ドキュメント自体に期限情報を付加して、delete by queryにより削除するように変更する。

注目キーワードの表示制御

現状、検索ログが有効かどうかで表示されるが、
注目キーワード応答の設定で注目キーワードの表示を制御する。

コンテンツプロキシ機能

file:でのアクセスをFessがプロキシしてコンテンツを中継する機能を追加する。
コンテンツを直接編集したい場合は、引き続きJavaアプレット版を利用する必要がある。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.