相关疑难解决方法(0)

Lucene.Net:如何在搜索结果中添加日期过滤器?

我让我的搜索者工作得非常好,但它确实会返回过时的结果.我的网站很像NerdDinner,过去的事件变得无关紧要.

我目前正在编写这样的
注释:我的例子是在VB.NET中,但我不在乎是否在C#中给出了示例

    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
Run Code Online (Sandbox Code Playgroud)

请注意我有一个存储事件日期的"日期"索引.

我的搜索看起来像这样

''# code omitted
        Dim reader As IndexReader …
Run Code Online (Sandbox Code Playgroud)

.net language-agnostic lucene.net

7
推荐指数
2
解决办法
6958
查看次数

标签 统计

.net ×1

language-agnostic ×1

lucene.net ×1