Indizierung umfangreicher Dateien in Solr, schnell und einfach
Am vergangenen Wochenende habe ich eine weitere Präsentation zum Thema „Rapid Prototyping with Solr“ gehalten, diesmal wieder im Rahmen des No Fluff, Just Stuff Symposiums in Raleigh, NC. Ich habe absichtlich bis zur letzten Minute gewartet, um ein schnelles Skript zusammenzuschustern, mit dem ich einige Daten indizieren konnte, die ich zuvor noch nicht indiziert hatte, um zu demonstrieren, wie einfach es ist, sich Solr zu schnappen und es sofort zu nutzen. Diesmal habe ich ein einfaches Ruby-Skript zusammengeschustet, um ein Verzeichnis voller umfangreicher Dokumente (PDF, HTML, Word usw.) in einer frisch installierten Solr 3.3.0 zu indizieren. Nur ein paar Sekunden später sind meine Dokumente indiziert und sogar über eine Benutzeroberfläche durchsuchbar.
Hier sind die Schritte, die ich unternommen habe:
- Laden Sie Apache Solr 3.3.0 herunter und „installieren“ (entpacken) Sie es.
- Starten Sie Solr (cd example; java -jar start.jar)
- Index-Dateien
Das war’s. Hier ist das Indexierungsskript, das ich verwendet habe:
require 'net/http'
@dir = Dir.new("/Users/erikhatcher/apache-solr-3.3.0/docs")
@url = URI.parse("http://localhost:8983/solr")
@connection = Net::HTTP.new(@url.host, @url.port)
def index(filename)
@connection.get(@url.path + "/update/extract?stream.file=#{filename}&literal.id=#{filename}")
end
def commit
@connection.get(@url.path + "/update?commit=true")
end
@dir.each {|name|
f = "#{@dir.path}/#{name}"
if File.file?(f)
puts "Indexing #{f}..."
index(f)
end
}
puts "Committing..."
commit
puts "Done!"
Damit es hübscher aussieht, müssen Sie nur ein wenig mit den Vorlagen herumspielen – fügen Sie Ihr Firmenlogo hinzu, passen Sie die Farben an. Und wenn Sie die Konfiguration des Beispiels (/browse handler) so ändern, dass sie auf content_type facettiert, können Sie über die mitgelieferte Benutzeroberfläche ganz einfach nur in Dokumenten bestimmter Typen suchen. Der obige Beispielcode indiziert die Dokumente, die mit Apache Solr 3.3.0 ausgeliefert werden. Ändern Sie einfach den Pfad zu einem Verzeichnis Ihrer Wahl, um Ihre eigenen Inhalte zu indizieren.