コード例 #1
0
        public void Update(UserSearchItem record)
        {
            var document = MapToDocument(record);

            using (var analyzer = new StandardAnalyzer(_luceneVersion))
            {
                using (var writer = new IndexWriter(Directory, analyzer, false, IndexWriter.MaxFieldLength.UNLIMITED))
                {
                    writer.UpdateDocument(new Term(UserSearchFields.UserId, record.UserId.ToString()), document);
                }
            }
        }
コード例 #2
0
        public Document MapToDocument(UserSearchItem record, Document document = null)
        {
            if (document == null)
            {
                document = new Document();
            }

            document.Add(new Field(UserSearchFields.UserId, record.UserId.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED));
            document.Add(new Field(UserSearchFields.FirstName, record.FirstName.ToLower(), Field.Store.YES, Field.Index.NOT_ANALYZED));
            document.Add(new Field(UserSearchFields.LastName, record.LastName.ToLower(), Field.Store.YES, Field.Index.NOT_ANALYZED));
            return(document);
        }
コード例 #3
0
        private UserSearchItem MapHitToQueryResult(ScoreDoc doc, IndexSearcher searcher)
        {
            var document = searcher.Doc(doc.Doc);

            var result = new UserSearchItem
            {
                UserId    = Int32.Parse(document.Get(UserSearchFields.UserId)),
                FirstName = document.Get(UserSearchFields.FirstName),
                LastName  = document.Get(UserSearchFields.LastName)
            };

            return(result);
        }