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

أدوات الموقع


pri:lucene

اختلافات

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

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

جانبي المراجعة السابقة المراجعة السابقة
المراجعة التالية
المراجعة السابقة
pri:lucene [2009/03/27 22:05]
alsadi
pri:lucene [2015/04/23 00:21] (حالي)
سطر 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 00:21 (تحرير خارجي)