Поиск Lucene для дат больше - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь искать в своих записях, ища даты, превышающие указанную дату.Я могу сделать это для дат, равных, меньше и между, но больше, чем всегда возвращать пустое.Вот как я индексирую:

Dim doc = New Document()

If sampleData.Start_Date IsNot Nothing Then
    Dim startDate As Integer = DateTools.DateToString(sampleData.Start_Date, DateTools.Resolution.DAY)
    doc.Add(New Field("Start_Date", startDate, Field.Store.YES, Field.Index.ANALYZED))
End If

writer.AddDocument(doc)

Затем я выполняю поиск следующим образом:

Dim LuceneSearch As New LuceneSearchEngine
Dim LuceneData As List(Of LuceneSearchData)

Dim SearchString = "{(Start_Date : {20180606 TO *}  ) AND (DataType:Mechanism)}"
LuceneData = LuceneSearch.search_query(SearchString)

Public Function search_query(ByVal search_query_string As String) As IEnumerable(Of LuceneSearchData)
        Using searcher = New IndexSearcher(_directory, False)
            Dim hits_limit = 1000
            Dim analyzer = New StandardAnalyzer(Version.LUCENE_30)
            Dim StandardAnalyzer As StandardAnalyzer = New StandardAnalyzer(Version.LUCENE_30)
            Dim QueryParser As QueryParser = New QueryParser(Version.LUCENE_30, search_query_string, StandardAnalyzer)
            Dim Query As Query = QueryParser.Parse(search_query_string)
            Dim hits = searcher.Search(Query, Nothing, hits_limit, Sort.RELEVANCE).ScoreDocs
            Dim results = _mapLuceneToDataList(hits, searcher)
            analyzer.Close()
            searcher.Dispose()
            Return results
        End Using
    End Function

Это всегда будет пустым.Но использование строки запроса, как это работает:

Dim SearchString = "{(Start_Date : {* TO 20180606}  ) AND (DataType:Mechanism)}"

Dim SearchString = "{(Start_Date : [20170606 TO 20180606]  ) AND (DataType:Mechanism)}"

Может кто-то указать, что я делаю неправильно?

...