मुझे अपने खोजकर्ता वास्तव में अच्छी तरह से काम कर रहा है, हालांकि यह अप्रचलित परिणामों को वापस करने के लिए प्रवृत्त होता है। मेरी साइट नेरड डिनर की तरह है, जिससे अतीत में घटनाएं अप्रासंगिक हो जाती हैं। एक मेरी उदाहरण VB.NET में है, लेकिन मुझे परवाह नहीं है उदाहरण सी # में दिया जाता है, तोलुसेन.Net: मैं अपने खोज परिणामों में दिनांक फ़िल्टर कैसे जोड़ सकता हूं?
Public Function AddIndex(ByVal searchableEvent As [Event]) As Boolean Implements ILuceneService.AddIndex
Dim writer As New IndexWriter(luceneDirectory, New StandardAnalyzer(), False)
Dim doc As Document = New Document
doc.Add(New Field("id", searchableEvent.ID, Field.Store.YES, Field.Index.UN_TOKENIZED))
doc.Add(New Field("fullText", FullTextBuilder(searchableEvent), Field.Store.YES, Field.Index.TOKENIZED))
doc.Add(New Field("user", If(searchableEvent.User.UserName = Nothing,
"User" & searchableEvent.User.ID,
searchableEvent.User.UserName),
Field.Store.YES,
Field.Index.TOKENIZED))
doc.Add(New Field("title", searchableEvent.Title, Field.Store.YES, Field.Index.TOKENIZED))
doc.Add(New Field("location", searchableEvent.Location.Name, Field.Store.YES, Field.Index.TOKENIZED))
doc.Add(New Field("date", searchableEvent.EventDate, Field.Store.YES, Field.Index.UN_TOKENIZED))
writer.AddDocument(doc)
writer.Optimize()
writer.Close()
Return True
End Function
सूचना मैं कैसे है ":
मैं इस समय इस
टिप्पणी की तरह का अनुक्रमण कर रहा हूँ तारीख "इंडेक्स जो घटना की तारीख को संग्रहीत करता है।
मेरे खोज तो यह
''# code omitted
Dim reader As IndexReader = IndexReader.Open(luceneDirectory)
Dim searcher As IndexSearcher = New IndexSearcher(reader)
Dim parser As QueryParser = New QueryParser("fullText", New StandardAnalyzer())
Dim query As Query = parser.Parse(q.ToLower)
''# We're using 10,000 as the maximum number of results to return
''# because I have a feeling that we'll never reach that full amount
''# anyways. And if we do, who in their right mind is going to page
''# through all of the results?
Dim topDocs As TopDocs = searcher.Search(query, Nothing, 10000)
Dim doc As Document = Nothing
''# loop through the topDocs and grab the appropriate 10 results based
''# on the submitted page number
While i <= last AndAlso i < topDocs.totalHits
doc = searcher.Doc(topDocs.scoreDocs(i).doc)
IDList.Add(doc.[Get]("id"))
i += 1
End While
''# code omitted
मैं निम्नलिखित की कोशिश किया था की तरह लग रहा है, लेकिन यह कोई लाभ नहीं हुआ था (एक NullReferenceException फेंक दिया)।
While i <= last AndAlso i < topDocs.totalHits
If Date.Parse(doc.[Get]("date")) >= Date.Today Then
doc = searcher.Doc(topDocs.scoreDocs(i).doc)
IDList.Add(doc.[Get]("id"))
i += 1
End If
End While
मैं भी निम्नलिखित दस्तावेज़ में पाया है, लेकिन मैं आप एक BooleanQuery
के साथ कई प्रश्नों को जोड़ सकते हैं यह
http://lucene.apache.org/java/1_4_3/api/org/apache/lucene/search/DateFilter.html
ठीक है, मैंने सोचा कि आपने एमवीसी वापस जोड़ा है। तो आयरनपीथन या आयरनआरबी उदाहरण के साथ आपका ठीक है? ;) – jfar
:-p [ओह जो इसे पूरी तरह से धक्का दे रहा है] –