Exemplo n.º 1
0
        public void Can_modify_doc_in_index_and_retrieve_by_secondary_key()
        {
            var index = new TestIndex();
            var doc   = new XDoc("doc").Elem("foo", "bar");
            var d     = new Document();

            d.Add(new Field("id", "123", Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field("foo", "bar", Field.Store.NO, Field.Index.ANALYZED));
            index.Add(d);
            var hits = index.Search(index.Parse("foo:bar"));

            Assert.AreEqual(1, hits.Count());
            var d2 = hits.First().Document;

            Assert.AreEqual("123", d2.Get("id"));
            Assert.AreEqual(doc.ToString(), d2.Get("doc"));
            d2.RemoveField("doc");
            d2.RemoveField("foo");
            doc = new XDoc("doc").Elem("foo", "baz");
            d2.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
            d2.Add(new Field("foo", "baz", Field.Store.NO, Field.Index.ANALYZED));
            index.Update(new Term("id", "123"), d2);
            hits = index.Search(index.Parse("foo:baz"));
            Assert.AreEqual(1, hits.Count());
            var d3 = hits.First().Document;

            Assert.AreEqual("123", d3.Get("id"));
            Assert.AreEqual(doc.ToString(), d3.Get("doc"));
        }
Exemplo n.º 2
0
 public void Can_modify_doc_in_index_and_retrieve_by_secondary_key() {
     var index = new TestIndex();
     var doc = new XDoc("doc").Elem("foo", "bar");
     var d = new Document();
     d.Add(new Field("id", "123", Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field("foo", "bar", Field.Store.NO, Field.Index.ANALYZED));
     index.Add(d);
     var hits = index.Search(index.Parse("foo:bar"));
     Assert.AreEqual(1, hits.Count());
     var d2 = hits.First().Document;
     Assert.AreEqual("123", d2.Get("id"));
     Assert.AreEqual(doc.ToString(), d2.Get("doc"));
     d2.RemoveField("doc");
     d2.RemoveField("foo");
     doc = new XDoc("doc").Elem("foo", "baz");
     d2.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
     d2.Add(new Field("foo", "baz", Field.Store.NO, Field.Index.ANALYZED));
     index.Update(new Term("id", "123"), d2);
     hits = index.Search(index.Parse("foo:baz"));
     Assert.AreEqual(1, hits.Count());
     var d3 = hits.First().Document;
     Assert.AreEqual("123", d3.Get("id"));
     Assert.AreEqual(doc.ToString(), d3.Get("doc"));
 }
Exemplo n.º 3
0
        public void Update_does_not_keep_unstored_fields()
        {
            var index = new TestIndex();
            var doc   = new XDoc("doc").Elem("foo", "bar");
            var d     = new Document();

            d.Add(new Field("id", "123", Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field("foo", "bar", Field.Store.NO, Field.Index.ANALYZED));
            index.Add(d);
            var hits = index.Search(index.Parse("foo:bar"));

            Assert.AreEqual(1, hits.Count());
            var d2 = hits.First().Document;

            index.Update(new Term("id", "123"), d2);
            hits = index.Search(index.Parse("foo:bar"));
            Assert.AreEqual(0, hits.Count());
        }
Exemplo n.º 4
0
        public void Can_add_same_field_multiple_times()
        {
            var index = new TestIndex();
            var doc   = new XDoc("doc").Elem("foo", "bar");
            var d     = new Document();

            d.Add(new Field("id", "123", Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field("foo", "bar", Field.Store.NO, Field.Index.ANALYZED));
            d.Add(new Field("foo", "baz", Field.Store.NO, Field.Index.ANALYZED));
            index.Add(d);
            var hits = index.Search(index.Parse("foo:bar"));

            Assert.AreEqual(1, hits.Count());
            var d2 = hits.First().Document;

            Assert.AreEqual("123", d2.Get("id"));
            hits = index.Search(index.Parse("foo:baz"));
            Assert.AreEqual(1, hits.Count());
            var d3 = hits.First().Document;

            Assert.AreEqual("123", d3.Get("id"));
        }
Exemplo n.º 5
0
        public void Can_use_update_for_new_document()
        {
            var index = new TestIndex();
            var doc   = new XDoc("doc").Elem("foo", "bar");
            var d     = new Document();

            d.Add(new Field("id", "123", Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field("foo", "bar", Field.Store.NO, Field.Index.ANALYZED));
            index.Update(new Term("id", "123"), d);
            var hits = index.Search(index.Parse("foo:bar"));

            Assert.AreEqual(1, hits.Count());
            var d2 = hits.First().Document;

            Assert.AreEqual("123", d2.Get("id"));
        }
Exemplo n.º 6
0
        public void Can_find_file_with_dash_in_it()
        {
            var index = new TestIndex(new UntokenizedAnalyzer());
            var d     = new Document();

            d.Add(new Field("id", "a", Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field(index.Default, "cube-teal", Field.Store.NO, Field.Index.ANALYZED));
            index.Add(d);
            Console.WriteLine("query");
            var query = index.Parse("CUBE-*");

            Assert.AreEqual("content:cube-*", query.ToString());
            var hits = index.Search(query);

            Assert.AreEqual(1, hits.Count());
            Assert.AreEqual("a", hits.First().Document.Get("id"));
        }
Exemplo n.º 7
0
        public void RemoveFields_removes_all_occurences()
        {
            var index = new TestIndex();
            var doc   = new XDoc("doc").Elem("foo", "bar");
            var d     = new Document();

            d.Add(new Field("id", "123", Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
            d.Add(new Field("foo", "bar", Field.Store.YES, Field.Index.ANALYZED));
            d.Add(new Field("foo", "baz", Field.Store.YES, Field.Index.ANALYZED));
            index.Add(d);
            var hits = index.Search(index.Parse("foo:bar"));

            Assert.AreEqual(1, hits.Count());
            var d2     = hits.First().Document;
            var fields = d2.GetFields("foo");

            Assert.AreEqual(2, fields.Length);
            d2.RemoveFields("foo");
            fields = d2.GetFields("foo");
            Assert.AreEqual(0, fields.Length);
        }
Exemplo n.º 8
0
 public void Can_find_file_with_dash_in_it() {
     var index = new TestIndex(new UntokenizedAnalyzer());
     var d = new Document();
     d.Add(new Field("id", "a", Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field(index.Default, "cube-teal", Field.Store.NO, Field.Index.ANALYZED));
     index.Add(d);
     Console.WriteLine("query");
     var query = index.Parse("CUBE-*");
     Assert.AreEqual("content:cube-*",query.ToString());
     var hits = index.Search(query);
     Assert.AreEqual(1, hits.Length());
     Assert.AreEqual("a", hits.Doc(0).Get("id"));
 }
Exemplo n.º 9
0
 public void Can_add_same_field_multiple_times() {
     var index = new TestIndex();
     var doc = new XDoc("doc").Elem("foo", "bar");
     var d = new Document();
     d.Add(new Field("id", "123", Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field("foo", "bar", Field.Store.NO, Field.Index.ANALYZED));
     d.Add(new Field("foo", "baz", Field.Store.NO, Field.Index.ANALYZED));
     index.Add(d);
     var hits = index.Search(index.Parse("foo:bar"));
     Assert.AreEqual(1, hits.Count());
     var d2 = hits.First().Document;
     Assert.AreEqual("123", d2.Get("id"));
     hits = index.Search(index.Parse("foo:baz"));
     Assert.AreEqual(1, hits.Count());
     var d3 = hits.First().Document;
     Assert.AreEqual("123", d3.Get("id"));
 }
Exemplo n.º 10
0
 public void Can_use_update_for_new_document() {
     var index = new TestIndex();
     var doc = new XDoc("doc").Elem("foo", "bar");
     var d = new Document();
     d.Add(new Field("id", "123", Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field("foo", "bar", Field.Store.NO, Field.Index.ANALYZED));
     index.Update(new Term("id", "123"), d);
     var hits = index.Search(index.Parse("foo:bar"));
     Assert.AreEqual(1, hits.Count());
     var d2 = hits.First().Document;
     Assert.AreEqual("123", d2.Get("id"));
 }
Exemplo n.º 11
0
 public void Update_does_not_keep_unstored_fields() {
     var index = new TestIndex();
     var doc = new XDoc("doc").Elem("foo", "bar");
     var d = new Document();
     d.Add(new Field("id", "123", Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field("foo", "bar", Field.Store.NO, Field.Index.ANALYZED));
     index.Add(d);
     var hits = index.Search(index.Parse("foo:bar"));
     Assert.AreEqual(1, hits.Count());
     var d2 = hits.First().Document;
     index.Update(new Term("id", "123"), d2);
     hits = index.Search(index.Parse("foo:bar"));
     Assert.AreEqual(0, hits.Count());
 }
Exemplo n.º 12
0
 public void RemoveFields_removes_all_occurences() {
     var index = new TestIndex();
     var doc = new XDoc("doc").Elem("foo", "bar");
     var d = new Document();
     d.Add(new Field("id", "123", Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field("doc", doc.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED));
     d.Add(new Field("foo", "bar", Field.Store.YES, Field.Index.ANALYZED));
     d.Add(new Field("foo", "baz", Field.Store.YES, Field.Index.ANALYZED));
     index.Add(d);
     var hits = index.Search(index.Parse("foo:bar"));
     Assert.AreEqual(1, hits.Count());
     var d2 = hits.First().Document;
     var fields = d2.GetFields("foo");
     Assert.AreEqual(2, fields.Length);
     d2.RemoveFields("foo");
     fields = d2.GetFields("foo");
     Assert.AreEqual(0, fields.Length);
 }