Şu anda kullanıcıların MS Office ve PDF belgelerine karşı metin sorgulamaları gerçekleştirdikleri tam metin arama sistemi tasarlıyorum ve sonuç, sorguyla en iyi eşleşen belgelerin bir listesini döndürecektir. Kullanıcı daha sonra iade edilen herhangi bir belgeyi seçecek ve bu belgeyi MS Word, Excel veya PDF görüntüleyicide görüntüleyecektir.
Ham ikili belgeleri (örn. .Docx, .xlsx, .pdf dosyaları) "veri deposu" içine almak için ElasticSearch veya Solr kullanabilir ve daha sonra görüntülenmek üzere komutu kullanıcının cihazına gönderebilir.
Daha önce, ham dosyaları GridFS'ye ve ayıklanan metne ayrı bir koleksiyona (koleksiyon bir metin dizini içeriyordu) aktarmak için MongoDB 2.6.6'yı kullandım ve bu iyi çalıştı. Ancak, MongoDB tam metin arama oldukça basit ve bu yüzden şimdi daha karmaşık metin arama yapmak için Solr veya ElasticSearch bakıyorum.
Nick
Solr ve Elasticsearch hem de endeksleyecek içerik Belgenin Solr bu yerleşik, Elasticsearch'in bir eklentiye ihtiyacı var. Her iki şekilde de kolay ve her ikisi de Tika'yı kapakların altında kullanır.
Hiçbiri belgenin kendisini saklayamaz. Bunu yapmalarını deneyebilirsiniz, ancak onlar için tasarlanmamışlardır ve acı çekeceksiniz.
Ek olarak, ne Solr ne de Elasticsearch şu anda birincil depolama olarak önerilmemektedir. Bunu yapabilirler, ancak bir dosya sistemi uygulaması için olduğu gibi onlar için kritik bir görev değildir.
Bu yüzden, dosyaları başka bir yerde bulundurmanızı ve yalnızca arama için Solr / Elasticsearch kullanmanızı tavsiye ederim. Parladıkları yer burası.
Elasticsearch eklenti eklentisini deneyebilirim. Detaylar burada bulunabilir:
https://www.elastic.co/guide/en/elasticsearch/plugins/2.2/mapper-attachments.html
https://github.com/elasticsearch/elasticsearch-mapper-attachments
Apache Tika'nın üstüne inşa edilmiştir:
http://tika.apache.org/1.7/formats.html
Ek tipi
Ek türü, farklı "ek" türü alanını dizine eklemenize izin verir
(base64 olarak kodlanmıştır), örneğin Microsoft Office formatları, açık
Belge formatları, ePub, HTML, vb. (tam liste burada bulunabilir).
Ek tipi bir eklenti uzantısı olarak sağlanır. Eklenti bir
İndirilebilen ve altına yerleştirilebilen basit zip dosyası
$ ES_HOME / plugins yeri. Otomatik olarak algılanır ve
ek türü eklenecektir.
Desteklenen Belge Biçimleri
Solr ile ilgili:
Dokümanların yalnızca meta veri aramalarında döndürülmesi gerekiyorsa, Solr, kodlanmış ikili veri base64'ü gönderebileceğiniz bir BinaryField alan türüne sahiptir. Dizininizi artırabileceğinden, genel olarak insanların bunu yapmasını tavsiye ettiğini unutmayın (RAM gereksinimleri / performans) ve mümkünse dosyaları harici olarak (ve solr dosyasındaki yol) sakladığınız bir kurulum daha iyi bir seçim olabilir.
Solr'ın pdf / doc içindeki metni otomatik olarak dizine eklemesini istiyorsanız - bu, extractingrequesthandler ile mümkündür: https://wiki.apache.org/solr/ExtractingRequestHandler
Elasticsearch belgeleri (örneğin, .pdfs, .docs) depolayın
_source alan. NoSQL veri deposu olarak kullanılabilir (MongoDB ile aynı).