Soru MS Office ve PDF belgeleri için ElasticSearch ve / veya Solr'u bir veri deposu olarak kullanma


Ş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


19
2018-01-16 05:41


Menşei


Düşünmek isteyebilirsiniz elasticwarehouse.org bunun için. Dosyayı okur, Tika'yı kullanarak meta verileri çıkarır ve ES içindeki ikili içeriği (ikili öğe olarak) veya harici dosya sisteminde depolar. Usecase'inizi test etmek için de kullanabilirsiniz (büyük ikili dosyaları veya çok sayıda ikili dosyayı saklamak ES kümelenme sorunlarına neden olabilir) - zuko
Merhaba, ihtiyaçlarınızı karşılamak için kullanılan çözüm ve arama motorlarını uygulamaya çalışırken karşılaştığınız konserler hakkında herhangi bir geri bildirim verebilir misiniz? Şimdiden teşekkürler. - Naou
PDF'lerden nasıl metin ayıklanıyorsunuz? Bunu yapmak için bazı özel araçlarınız var mı, yoksa elastik aramada mı çalışıyorsunuz? - Kimberly W


Cevaplar:


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ı.


19
2018-01-17 15:59



Teşekkür ederim! Şimdi belgeleri mongo'da ve ElasticSearch'te çıkarılan metni (link olarak MongoDB nehir eklentisini kullanarak) depolamayı düşünüyorum. - ngekas
Ambar'ı çözüm olarak kullanabileceğiniz @ngekas, bu tür problemler için sağlam bir çözüm olarak geliştirdik. Buradan kontrol edin github.com/RD17/ambar - SochiX


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

  • Köprü Metni Biçimlendirme Dili

  • XML ve türetilmiş formatlar

  • Microsoft Office belge formatları
  • OpenDocument Biçimi
  • iWorks belge formatları
  • Taşınabilir Döküman Formatı
  • Elektronik Yayın Formatı
  • Zengin metin formatı
  • Sıkıştırma ve paketleme formatları
  • Metin formatları
  • Feed ve Sendikasyon formatları
  • Yardım formatları
  • Ses formatları
  • Görüntü formatları
  • Video formatları
  • Java sınıfı dosyaları ve arşivleri
  • Kaynak kodu
  • Mail formatları
  • CAD formatları
  • Yazı tipi formatları
  • Bilimsel formatlar
  • Yürütülebilir programlar ve kütüphaneler
  • Kripto formatları

14
2018-01-17 05:46



İlk bağlantı kırılmış gibi görünüyor. - Kimberly W
bağlantıyı düzeltdi, sayfa taşındı - John Petrone
Veri depolamak ve mapper ekleri eklentisini kullanmak için hadoop kullanabilir miyim? Mümkün mü ? - Sachin
Bu yöntem, Elastics Search'ün daha yeni sürümlerinde artık çalışmaz, en çok eklenen eklenti ile değiştirilmiştir. - Joost Aarts


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


0
2018-01-16 06:28



Solr bu yüzden harici dosya tipi. Bunu kullanırken, dizin ve dosya sistemlerini kendi başınıza ele alarak yeniden icat etmeniz gerekmez. - cheffe
Solr içindeki ikili verilerin saklanmasının sınırlamalarını açıkladığınız için teşekkürler (aynı kısıtlamanın ElasticSearch için de geçerli olduğunu varsayalım). - ngekas


Elasticsearch belgeleri (örneğin, .pdfs, .docs) depolayın _source alan. NoSQL veri deposu olarak kullanılabilir (MongoDB ile aynı).


0
2018-03-13 09:28