Exemplo n.º 1
0
        public int SearchCount(LuceneSearcherConfiguration luceneSearcherConfiguration)
        {
            if (!CheckSearchConfiguration(luceneSearcherConfiguration))
            {
                return(-1);
            }

            if (luceneSearcherConfiguration.ESearchMethod == ESearchMethod.FullText)
            {
                return(_indexSearcher?.Search(new MultiFieldQueryParser
                                              (
                                                  LuceneVersion.LUCENE_48,
                                                  luceneSearcherConfiguration.Fields,
                                                  new StandardAnalyzer(LuceneVersion.LUCENE_48)
                                              ).Parse(luceneSearcherConfiguration.Query), luceneSearcherConfiguration.MaxResult)
                       .TotalHits ?? -1);
            }

            if (luceneSearcherConfiguration.WantAll)
            {
                return(_indexSearcher?.Search(GetAll(luceneSearcherConfiguration.All), luceneSearcherConfiguration.MaxResult).TotalHits ?? -1);
            }

            return(_indexSearcher?.Search(CreateQuery(luceneSearcherConfiguration), luceneSearcherConfiguration.MaxResult).TotalHits ?? -1);
        }
Exemplo n.º 2
0
        private bool CheckSearchConfiguration(LuceneSearcherConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            if (configuration.MaxResult == 0)
            {
                throw new ArgumentException(nameof(configuration));
            }
            return(true);
        }
Exemplo n.º 3
0
        public LuceneStatistics(LuceneConfiguration configuration)
        {
            _luceneSearcher = new LuceneSearcherManager(configuration);
            _allSearchLog   = new LuceneSearcherConfiguration
            {
                MaxResult = int.MaxValue
            };
            _allSearchLog.SearchAll(ELuceneWantAll.Log);

            _allSearchException = new LuceneSearcherConfiguration
            {
                MaxResult = int.MaxValue
            };
            _allSearchException.SearchAll(ELuceneWantAll.Exception);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Search into Lucene index.
        /// If the <see cref="LuceneSearcherConfiguration"/> is not correct return null.
        /// </summary>
        /// <param name="searchConfiguration"></param>
        /// <returns></returns>
        public List <ILogViewModel> Search(LuceneSearcherConfiguration searchConfiguration)
        {
            if (!CheckSearchConfiguration(searchConfiguration))
            {
                return(null);
            }

            if (searchConfiguration.ESearchMethod == ESearchMethod.FullText)
            {
                return(Search(searchConfiguration, new MultiFieldQueryParser
                              (
                                  LuceneVersion.LUCENE_48,
                                  searchConfiguration.Fields,
                                  new StandardAnalyzer(LuceneVersion.LUCENE_48)
                              ).Parse(searchConfiguration.Query)));
            }

            return(searchConfiguration.WantAll
                ? Search(searchConfiguration, GetAll(searchConfiguration.All))
                : CreateLogsResult(_indexSearcher?.Search(CreateQuery(searchConfiguration), searchConfiguration.MaxResult, _sort)));
        }