में multifieldquery और फ़िल्टर का उपयोग कैसे करें मैं lucene.net अनुक्रमणिका पर एक बहु फ़ील्ड खोज करना चाहता हूं लेकिन फ़ील्ड में से किसी एक के आधार पर परिणाम फ़िल्टर करना चाहता हूं। यहाँ मैं वर्तमान में क्या कर रहा है:Lucene.net
सूचकांक करने के लिएक्षेत्रों परिभाषाएं दी गई हैं:
doc.Add(new Field("id", id.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
doc.Add(new Field("title", title, Field.Store.NO, Field.Index.TOKENIZED));
doc.Add(new Field("summary", summary, Field.Store.NO, Field.Index.TOKENIZED, Field.TermVector.YES));
doc.Add(new Field("description", description, Field.Store.NO, Field.Index.TOKENIZED, Field.TermVector.YES));
doc.Add(new Field("distribution", distribution, Field.Store.NO, Field.Index.UN_TOKENIZED));
जब मैं खोज रहा निम्न कार्य करते हैं:
MultiFieldQueryParser parser = new MultiFieldQueryParser(new string[]{"title", "summary", "description"}, analyzer);
parser.SetDefaultOperator(QueryParser.Operator.AND);
Query query = parser.Parse(text);
BooleanQuery bq = new BooleanQuery();
TermQuery tq = new TermQuery(new Term("distribution", distribution));
bq.Add(tq, BooleanClause.Occur.MUST);
Filter filter = new QueryFilter(bq);
Hits hits = searcher.Search(query, filter);
हालांकि, परिणाम हमेशा होता है 0 हिट
मैं क्या गलत कर रहा हूं?
लक्ष्य पाठ खोजा जा "बॉक्स लोमड़ी", और खोज एक ग्राहक द्वारा दर्ज की गई अवधि है अगर केवल बॉक्स, तुम कैसे Lucene के लिए एक मैच को गति प्रदान करने मिलता है "बॉक्स फॉक्स" डॉक्टर? –