أعجوبة

البرمجيات الحُرة والمفتوحة المصدر

أدوات المستخدم

أدوات الموقع


pri:lucene

اختلافات

عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.

رابط إلى هذه المقارنة

جانبي المراجعة السابقةالمراجعة السابقة
المراجعة التالية
المراجعة السابقة
pri:lucene [2009/03/28 00:05] alsadipri:lucene [2015/04/23 03:21] (حالي) – تحرير خارجي 127.0.0.1
سطر 1: سطر 1:
 +====== ملاحظات على lucene ======
 +===== تلقيم محرك البحث =====
 +بالنسبة للجزء الذي يمد lucene بالمستندات
 +
 +<code groovy>
 +document = new Document()
 +document.add(new Field(FIELD_ID, String.valueOf(1), Field.Store.YES, Field.Index.UN_TOKENIZED))
 +document.add(new Field(FIELD_DEPTH, String.valueOf(5), Field.Store.YES, Field.Index.UN_TOKENIZED))
 +</code>
 +
 +http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/document/Field.Index.html
 +
 +يجب أن لا نستخدم  Field.Index.UN_TOKENIZED و TOKENIZED
 +الأفضل ANALYZED و NOT_ANALYZED وهو مجرد تغيير اصطلاحي
 +
 +نستخدم NOT_ANALYZED مع المعرّفات أو عندما نقوم نحن بعمل التقطيع
 +
 +نستخدم ANALYZED مع الحقول التي نريد أن يتم تجذيعها وتقطيعها وتوحيدها ...
 +
 +http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/document/Field.Store.html
 +
 +يجب أن نستعمل Field.Store بقيمة YES مع الحقول التي نريد أن نحفظها حتى تعاد لنا عند البحث مثل معرف الوثيقة واسم الملف وربما عنوان الوثيقة (لتوفير الاستعلام لجلب العنوان)
 +
 +
 +[[http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/document/Field.html#Field(java.lang.String,%20java.lang.String,%20org.apache.lucene.document.Field.Store,%20org.apache.lucene.document.Field.Index)|الصيغة أعلاه]] لا تحفظ Term Vector ولا تستفيد منه وهو عد الكلمات (وتتابعها وإزاحتها)
 +
 +  Term vectors will not be stored in the index. 
 +
 +لذا من الأفضل أن يكون التطبيق
 +
 +<code groovy>
 +document = new Document()
 +document.add(new Field(FIELD_ID, String.valueOf(1), Field.Store.YES, Field.Index.NOT_ANALYZED))
 +document.add(new Field(FIELD_FILENAME, fn, Field.Store.YES, Field.Index.NOT_ANALYZED))
 +document.add(new Field(FIELD_CONTENT, "Hello World", Field.Store.NO, Field.Index.ANALYZED,Field.TermVector.WITH_POSITIONS_OFFSETS))
 +</code>
 +التفصيل مذكور في
 +
 +http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/document/Field.TermVector.html
 +
 +===== بالنسبة للتقطيع والتجذيع =====
 +وظيفة المحلل هو التقطيع والتجذيع
 +<file>
 +Typical implementations first build a Tokenizer, which breaks the stream of characters from the Reader into raw Tokens. One or more TokenFilters may then be applied to the output of the Tokenizer. 
 +</file>
 +
 +بالنسبة للجزء
 +<code groovy>
 +indexWriter = new IndexWriter(indexDirFile, new StandardAnalyzer(), true)
 +</code>
 +
 +فهو يستعمل التحليل القياسي الخاص باللغة الإنجليزية
 +وكما هو واضح من [[http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/analysis/Analyzer.html|الوثائق]] فإن كل لغة لها محلل خاص بها كالبرازيلية
 +
 +إن المحلل القياسي ليس أقوى محلل للقة الإنجليزية بل هناك 
 +
 +[[http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/analysis/snowball/SnowballAnalyzer.html|Snowball]]
 +حيث يقوم بما يلي بعد التقطيع القياسي:
 +  * StandardFilter
 +  * LowerCaseFilter - تحويل كل الحروف إلى صغيرة
 +  * StopFilter - إهمال الكلمات بعض الكلمات الإنجليزية
 +  * SnowballFilter - التجذيع
 +
 +يجب أن نقوم ببناء محلل خاص بنا مبني من أحدها
 +
 +http://svn.apache.org/repos/asf/lucene/java/trunk/src/java/org/apache/lucene/analysis/
 +
 +
 +
 +وبالحبث في الكود وجدت محلل للغة العربية
 +
 +http://svn.apache.org/repos/asf/lucene/java/trunk/contrib/analyzers/src/java/org/apache/lucene/analysis/ar/
 +
 +اكتب
 +<code bash>
 +svn co http://svn.apache.org/repos/asf/lucene/java/trunk/contrib/analyzers/src/java/org/apache/lucene/analysis/ar/
 +</code>
 +وهو موثق هنا وهناك كود سي للتجذيع
 +
 +http://members.unine.ch/jacques.savoy/clef/index.html
 +
 +وهو طبعا غبي لأنه ظاهر جدا أنه قام بتقطيع صحيفة واعتبر الكلمات المحرردة جدا مهملة مثل غزة واسرائيل
 +
 +بأي حال
 +علينا وضع برنامج التحليل والتجذيع الخاص بنا هناك وليس عند تمرير المحتوي عبر document.add
 +
 +
 +محرك البحث xapian ربما يحتوي معلومات خطا في 
 +
 +http://trac.xapian.org/browser/trunk/xapian-core/unicode/tclUniData.cc
 +
  
pri/lucene.txt · آخر تعديل: 2015/04/23 03:21 بواسطة 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki