मुझे लगता है कि एक अस्पष्ट क्वेरी आपके लिए सबसे उपयोगी हो सकती है। यह आपकी क्वेरी से लेवेनशेटिन दूरी के आधार पर शर्तों को स्कोर करेगा। निर्दिष्ट न्यूनतम समानता के बिना, यह प्रभावी रूप से उपलब्ध हर शब्द से मेल खाएगा। यह इसे कलाकार से कम कर सकता है, लेकिन जो भी आप खोज रहे हैं उसे पूरा करता है।
firstname:bahnhofstr~
या कम से कम समानता (कोई न्यूनतम के साथ loosest जा रहा है 0 और 1, 0 के बीच एक संख्या)
firstname:bahnhofstr~0.4
साथ:
एक फजी क्वेरी जैसे कि, ~ चरित्र द्वारा संकेत है
या यदि आप अपने खुद के प्रश्नों का निर्माण कर रहे हैं, FuzzyQuery
का उपयोग यह काफी वास्तव में आप निर्दिष्ट नहीं है, लेकिन सबसे आसान तरीका है पास पाने के लिए है।
जहां तक आप वास्तव में खोज रहे हैं, मुझे इसे पूरा करने के लिए एक साधारण लुसीन कॉल के बारे में पता नहीं है। मैं शायद सिर्फ termqueries की एक श्रृंखला में अवधि विभाजित होता है, कि आप की तरह एक क्वेरी स्ट्रिंग कुछ में प्रतिनिधित्व कर सकते हैं:
firstname:b
firstname:ba
firstname:bah
firstname:bahn
firstname:bahnh
firstname:bahnho
firstname:bahnhof
firstname:bahnhofs
firstname:bahnhofst
firstname:bahnhofstr*
मैं वास्तव में इसके लिए एक क्वेरी स्ट्रिंग उत्पन्न नहीं होगा अपने आप, वैसे। मैं सिर्फ TermQuery और PrefixQuery ऑब्जेक्ट्स स्वयं ही बनाऊंगा।
स्कोरिंग थोड़ा विचलित हो जाएगा, और शायद इससे बेहतर आदेश प्राप्त करने के लिए मैं लंबे समय तक अधिक प्रश्नों को बढ़ावा देता हूं, लेकिन यह वही तरीका है जो आप आसानी से पूरा करने के लिए ध्यान में रखते हैं। DisjunctionMaxQuery आपको इस तरह की कुछ अन्य शर्तों के साथ उपयोग करने और अधिक उचित स्कोरिंग प्राप्त करने में मदद करेगा।
उम्मीद है कि एक अस्पष्ट क्वेरी आपके लिए अच्छी तरह से काम करती है। एक बहुत अच्छा समाधान लगता है।
एक अन्य विकल्प है, अगर आप इस प्रकार की क्वेरी के लिए की जरूरत के एक बहुत कुछ है, हो सकता है, जब अनुक्रमण, एन-ग्राम (NGramTokenizer देखें) है, जो आप को प्रभावी ढंग से परिणाम प्राप्त करने के लिए एक NGramPhraseQuery का उपयोग करने की अनुमति होगी में tokenize क्षेत्रों तुम्हें चाहिए।
संबंधित (लेकिन आप के लिए एक उचित जवाब के बिना, बस कहते हैं, "हाँ , आप कर सकते हैं "): http: // stackoverflow।कॉम/प्रश्न/10671755/ल्यूसीन-उपसर्ग-खोज-अनुक्रमित-डेटा-थ्रू-मानक-विश्लेषक – Thilo
उप-विपरीत भाग नहीं देखा। तो आप भी "बी" हिट करना चाहते हैं? क्या न्यूनतम लंबाई है? – Thilo
हां, ऐसे मामले हैं जहां मैं "बी" हिट करना चाहूंगा। केवल "सामग्री" सामग्री के साथ "first_name" फ़ील्ड की कल्पना करें ... –