मेरे पास एकाधिक फ़ील्ड वाले इंडेक्स हैं, जिनमें से एक एक स्ट्रिंग फ़ील्ड है जिसमें मैं उत्पाद के लिए श्रेणी नाम स्टोर करता हूं ... जैसे "इलेक्ट्रॉनिक्स", "होम", "गार्डन", आदिलुसेन या बूलियन क्वेरी का उपयोग करके खोज
new StringField("category_name", categoryName, Field.Store.YES)); //categoryName is a value such as "Electronics"
मैं एक बूलियन पूछताछ कर रहा हूँ नाम, मूल्य, और श्रेणी के आधार पर उत्पादों को खोजने के, लेकिन मैं इतना है कि मैं एक ही समय में दो श्रेणियों के लिए क्वेरी कर सकते हैं एक या खोज करने के लिए कैसे यकीन नहीं है।
मेरे वर्तमान क्वेरी इस तरह दिखता है:
String cat = "Electronics"
TermQuery catQuery = new TermQuery(new Term("category_name", cat));
bq.add(new BooleanClause(catQuery, BooleanClause.Occur.MUST)); // where "bq" is the boolean query I am adding to, I tried .SHOULD but that didn't help either
यह एक श्रेणी खोज के लिए ठीक काम करता है, लेकिन मैं खोज करने के लिए कैसे "इलेक्ट्रॉनिक्स या घर" जो दो श्रेणियों होगा यकीन नहीं है।
@ Ibear के जवाब सही है, लेकिन आप भी पढ़ सकते हैं http://searchhub.org/dev/2011/12/28/why-not-and-or -और नहीं/बेहतर समझने के लिए कि ल्यूसीन में बूलियन तर्क कैसे काम करता है। – mindas
@ मिंडस, लिंक के लिए धन्यवाद, जो वास्तव में बहुत मदद करता है। इच्छा है कि मैं इसे एक उत्तर के रूप में वोट दे सकता हूं क्योंकि यह वास्तव में उपयोगी है। – SoluableNonagon