سؤال

نحن حاليا باستخدام لوسين 2.1.0 لموقعنا البحث و لقد ضرب مشكلة صعبة:واحدة من لدينا مؤشر الحقول يجري تجاهلها خلال البحث المستهدفة.هنا هو رمز إضافة الحقل إلى مستند في الفهرس:

// Add market_local to index
contactDocument.add(
    new Field(
        "market_local"
        , StringUtils.objectToString(
            currClip.get(
                "market_local"
            )
        )
        , Field.Store.YES
        , Field.Index.UN_TOKENIZED 
    )
);

تشغيل استعلام ( * ) ضد المؤشر سيعود النتائج التالية:

Result 1:
    title: Foo Bar
    market_local: Local

Result 2:
    title: Bar Foo
    market_local: National

تشغيل المستهدفة الاستعلام:

+( market_local:Local )

لن تجد أي نتائج.

أدرك أن هذا هو غاية سؤال محدد, أنا فقط أحاول الحصول على معلومات عن من أين تبدأ تصحيح هذه المشكلة ، كما أنا لوسين مبتدئ.


التحديث

تثبيت لوك التحقق من أحدث مؤشر...الميدان market_local يتوفر في عمليات البحث ، لذلك إذا كنت تنفيذ شيء من هذا القبيل:

market_local:Local

البحث يعمل بشكل صحيح (في لوقا).انا ذاهب لدينا محلل الشفرة الآن, هل هناك أي طريقة يمكنني أن الطباشير هذه المسألة إلى حقيقة أن لدينا تطبيق البحث باستخدام لوسين 2.1.0 وأحدث نسخة من لوقا يستخدم 2.3.0?

هل كانت مفيدة؟

المحلول

من أجل التصحيح لوسين, أفضل أداة لاستخدام لوقا, مما يتيح لك التجول في المؤشر ذاته أن نرى ما تمت فهرستها ، القيام بعمليات تفتيش, etc.أوصي تنزيله, لافتا أنه في الفهرس الخاص بك ، ورؤية ما في هناك.

نصائح أخرى

على قسم "لماذا أصبح لا يضرب؟" في لوسين التعليمات لديه بعض الاقتراحات التي قد تجدها مفيدة.كنت تستخدم المجال.مؤشر.UN_TOKENIZED لذا لا محلل سيتم استخدام الفهرسة (على ما أظن).إذا كنت تستخدم محلل عند البحث فإن ذلك قد يكون جذر المشكلة - الفهرسة والبحث تحليل يجب أن يكون نفس للتأكد من أنك تحصل على حق يضرب.

آخر شيء بسيط القيام به هو استخدام مصحح أخطاء أو تسجيل البيان أن تحقق قيمة

StringUtils.objectToString(currClip.الحصول على("market_local"))

للتأكد من أنها ما كنت أعتقد أنه هو.

لوقا هو المجمعة مع لوسين, ولكن يمكن أن أقول لكم لوقا استخدام إصدار آخر من لوسين.يقول "lucene-core-2.1.0.jar" يحتوي على لوسين 2.1.0 التي تريد استخدامها ، "luke.jar" يحتوي على لوك مع لوسين 2.3.0.ثم يمكنك البدء في لوقا مع الأمر التالي.

جافا classpath lucene-core-2.1.0.jar;luke.jar org.getopt.لوقا.لوقا

(الخدعة هو وضع الإصدار الخاص بك من لوسين قبل لوقا في classpath.أيضا هذا على نظام التشغيل ويندوز.على يونكس ، محل ";" مع ":".)

كما يمكنك التحقق من لوقا ،

+( market_local:المحلية )

يحصل إعادة كتابة

market_local:المحلية

إذا كتابة(IndexReader) طريقة الاستعلام كائن ويسمى.اثنين من الاستفسارات يجب أن يكون معادلا لذلك قد يكون هناك خلل في 2.1.إذا كان لديك لاستخدام 2.1, يمكنك محاولة يدويا استدعاء هذا الأسلوب قبل تمرير كائن الاستعلام إلى IndexSearcher.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top