Lucene. Net v4.8.0-beta00007 - Пользовательский анализатор StopWord - Исключение Не удается прочитать из закрытого TextReader - PullRequest
0 голосов
/ 28 апреля 2020

Мы пытаемся конвертировать из v3.0.3 в v4.8.0-beta00007. . Net Framework 4.5.

Ранее у нас был пользовательский анализатор StopWords, унаследованный от Analyzer. После обновления существует абстрактный метод, который необходимо реализовать с именем: TokenStreamComponents CreateComponents (строка fieldName, читатель TextReader)

Следуя документации https://lucenenet.apache.org/download/version-4.html, чтобы реализовать этот метод, мы получение исключения: «Не удается прочитать из закрытого TextReader.»

Вот наша реализация:

    protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
    {
        Analyzer analyzer = new StandardAnalyzer(_luceneVersion, reader);
        TokenStream ts = analyzer.GetTokenStream(fieldName, reader);
        var tokenizer = new StandardTokenizer(_luceneVersion, reader);

        try
        {
            ts.Reset(); // Resets this stream to the beginning. (Required)
            while (ts.IncrementToken())
            {
            }
            ts.End();   // Perform end-of-stream operations, e.g. set the final offset.
        }
        catch (Exception ex)
        {
            _ = ex.Message;
            throw;
        }
        finally
        {
            ts.Dispose();
        }
        return new TokenStreamComponents(tokenizer, ts);
    }
...