के साथ वाक्य जागरूक खोज क्या सभी घटनाओं को खोजने के लिए लुसीन स्पैनक्वियर का उपयोग करना संभव है जहां "लाल" "हरा" और "नीला" शब्द एक ही वाक्य में दिखाई देते हैं?ल्यूसीन स्पैनक्विरीज़
मेरा पहला (अधूरा/गलत) दृष्टिकोण एक विश्लेषक लिखना है जो एक विशेष वाक्य मार्कर टोकन रखता है और वाक्य के पहले शब्द के समान स्थिति में वाक्य की शुरुआत करता है और उसके बाद कुछ के लिए पूछताछ करता है निम्नलिखित:
SpanQuery termsInSentence = new SpanNearQuery(
SpanQuery[] {
new SpanTermQuery(new Term (MY_SPECIAL_SENTENCE_TOKEN)),
new SpanTermQuery(new Term ("red")),
new SpanTermQuery(new Term ("green")),
new SpanTermQuery(new Term ("blue")),
},
999999999999,
false
);
SpanQuery nextSentence = new SpanTermQuery(new Term (MY_SPECIAL_SENTENCE_TOKEN));
SpanNotQuery notInNextSentence = new SpanNotQuery(termsInSentence,nextSentence);
समस्या, ज़ाहिर है, कि nextSentence
वास्तव में अगले वाक्य नहीं है, यह किसी भी वाक्य मार्कर है, वाक्य कि termsInSentence
मैचों में भी शामिल है। इसलिए यह काम नहीं करेगा।
मेरा अगला दृष्टिकोण विश्लेषक बनाने के लिए है जो वाक्य से पहले टोकन रखता है ( पहले शब्द के समान स्थिति के बजाय पहला शब्द)। इसके साथ समस्या यह है कि मुझे MY_SPECIAL_SENTENCE_TOKEN
के कारण अतिरिक्त ऑफसेट के लिए खाते हैं। और भी, यह विशेष रूप से खराब होगा जब मैं वाक्यों को विभाजित करने के लिए एक बेवकूफ पैटर्न का उपयोग कर रहा हूं (उदाहरण के लिए /\.\s+[A-Z0-9]/
पर विभाजित) क्योंकि जब मैं यूएसएस एंटरप्राइज़ की खोज करता हूं तो मुझे सभी (झूठी) वाक्य मार्करों के लिए खाता लेना होगा।
तो ... मुझे यह कैसे संपर्क करना चाहिए?