I recently found a functional solution for searching in a knowledge management system and found a good reference application solution for analysis. I hope that similar applications can communicate with each other.
When talking about full-text retrieval, Lucene's famous name is estimated that people on earth know that after so many years of development, peripheral applications are rich and colorful. SOLR provides a web-based solution based on Lucene API. The application of lucid is encapsulated around common enterprise applications based on SOLR.
How to embody SOLR-based application front-end
Http://www.lucidimagination.com/blog/2010/01/14/solr-search-user-interface-examples/
This articleArticleIntroduced a varietyProgramVarious applications implemented in languages
This article focuses on the rubySource codeImplemented applications
Lucid introduction
Download http://www.lucidimagination.com/downloadsLucidworks Enterprise,Then install the tool to view the effect.
The topic architecture is as follows:
SOLR core is part of the integration with luncenesolr LWE-core
Lucid custom enhancements and interfaces provide a wide range of application layer references.CodeIt is written in Ruby, but runs in jruby.
The use process is the SOLR first started, and then the lucid started
Code Analysis
ExamplesThere are call references for the search service rest service such as C # Perl python. If you are only concerned with SOLR application, you can only refer to this part.
LWE-coreThe SOLR service is under the Directory, which is written in JSP and run in the jetty container. This part is used by the public, so we do not need to repeat it.
RailsThe directory is the lucid service, which is written in Ruby. The search, alarm, and management functions are written independently as plug-in. rails3.0.5 is used, and the view layer uses ERB and haml.
Ruby has relatively few users. It is difficult to analyze the content of this part. The following are some parameters:
1. rails3 has greatly improved compared with 2, and some commands are simplified. Therefore, pay attention to this part.
2. The view layer uses the haml template, so you need to understand it. Otherwise, you cannot see such a view. jquery, jquery-ui, and other plug-ins are used in the browser interface.
3. This program uses sqlite3 to store data by default, while jruby runs in windows. If you need jruby to run directly, you can replace it with MySQL.
4. Check the code and use netbeans. It is best to use version 6. After version 7, Ror is not directly integrated. [The specific method is to create a ROR project, copy the nbproject directory to this project directory and open it with netbeans]
5. When analyzing this project, it is best not to install the standard Ruby version. Otherwise, jruby-s needs to be input before gem rake and other commands to distinguish jruby and Ruby runtime environments. This is very troublesome.
The entry to start a lucid application is: start "lucidworks rails"/B "% JVM %"-CP bin startutil start "% JVM %" 1>. /logs/ruby-stdout.log 2>. /logs/ruby-stderr.log
The above command line actually runs: [the current directory is rails]
Javaw "-djava. AWT. headless = true-dlog4j. configuration = file :.. /CONF/log4j. XML "-jar .. /lib/jruby-complete-1.5.3.jar-R .. /lib/bundler. jar-s script/rails server-e production-P 8989
Bundler. jar is the RB file package for managing the dependencies of the GEM package.
The jruby-complete-1.5.3.jar is the interpretation environment of jruby, Which is carried to JRE, so Ruby can call each other between Java
Lucid application result interface reference
Including index, index statistics, and search enhancement from multiple data sources
For details, refer to "lucidworks enterprise user guide.pdf" in docs under the installation package. This gives a detailed explanation of the entire application.
For more detailed content, we will analyze it in detail later.