लुसीन दस्तावेज एक ही नाम के कई क्षेत्रों के अतिरिक्त समर्थन का समर्थन करते हैं। यानी आप बार-बार फोन कर सकते हैं:
document.add(new Field("name"), value)
तो तुम क्या करने के लिए इस प्रकार थे:
# (pseudo-code)
document1.add(new Field("ingredient"), "vanilla")
document1.add(new Field("ingredient"), "strawberry")
index.add(document)
# And then search for
index.search("ingredient", "vanilla" && "strawberry")
आप Document1 वापस मिल जाएगा। लेकिन अगर आप के लिए खोज:
index.search("ingredient", "vanilla" && "apple")
आप वापस Document1 नहीं मिलेगा।
यदि आप के लिए खोज:
index.search("ingredient", "vanilla" || "apple")
तुम भी वापस Document1 मिलेगा।
यदि आप देखना चाहते हैं कि कौन से तत्व मिलते हैं तो आप दस्तावेज़ पर फ़ील्ड को संग्रहीत कर सकते हैं फ़ील्ड, और फिर प्रत्येक मिलान दस्तावेज़ के लिए फ़ील्ड की सूची पुनर्प्राप्त करें और उन्हें उपयोगकर्ता क्वेरी से तुलना करें।
यह भी ध्यान दें कि डिफ़ॉल्ट रूप से स्थिति इंक्रूममेंट गैप दस्तावेज़ में जोड़े गए समान नाम वाले फ़ील्ड के लिए 0 है।
इसका मतलब यह है कि यदि आप कहा:
document1.add(new Field("ingredient"), "chocolate")
document1.add(new Field("ingredient"), "orange")
तो यह माना जाएगा जैसे कि यह एक एकल घटक "चॉकलेट नारंगी" जिस पर मेल करने वाले बुलाया थे:
index.search("ingredient", "chocolate orange")
आप बच सकते हैं यह PositionIncrementGap> 1 के लिए एक मान सेट करता है, जो उपज करेगा:
0 के लिए मिलान:
index.search("ingredient", "chocolate orange")
और 1 मैच के लिए:
index.search("ingredient", "chocolate" && "orange")