Example #1
0
        public void Add_then_query()
        {
            const string name = "Samsuñg SpinPoint P120 SP2514N - hárd drívè - 250 GB - ÁTÀ-133";
            var          guid = new Guid("{78D734ED-12F8-44E0-8AA3-8CA3F353998D}");
            var          p    = new Product {
                Id   = "SP2514N",
                Guid = guid,
                Name = name,
                // testing UTF
                Manufacturer = "Samsung Electronics Co. Ltd.",
                Categories   = new[] {
                    "electronics",
                    "hard drive",
                },
                Features = new[] {
                    "7200RPM, 8MB cache, IDE Ultra ATA-133",
                    "NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor",
                    "áéíóúñç & two",                                                               // testing UTF
                    @"ÚóÁ⌠╒""ĥÛē…<>ܐóジャストシステムは、日本で初めてユニコードベースのワードプロセ ッサーを開発しました。このことにより、10年以上も前から、日本のコンピューターユーザーはユニコード、特に日中韓の統合漢 字の恩恵を享受してきました。ジャストシステムは現在、”xfy”というJava環境で稼働する 先進的なXML関連製品の世界市場への展開を積極的に推進していますが、ユニコードを基盤としているために、”xfy”は初めから国際化されているのです。ジャストシステムは、ユニコードの普遍的な思想とアーキテクチャに 感謝するとともに、その第5版の刊行を心から歓迎します",
                    @"control" + (char)0x07 + (char)0x01 + (char)0x0E + (char)0x1F + (char)0xFFFE, // testing control chars
                },
                Prices = new Dictionary <string, decimal> {
                    { "regular", 150m },
                    { "afterrebate", 100m },
                },
                Price         = 92,
                PriceMoney    = new Money(92m, "USD"),
                Popularity    = 6,
                InStock       = true,
                DynCategories = new Dictionary <string, ICollection <string> > {
                    { "t", new[] { "something" } },
                }
            };

            solr.Delete(SolrQuery.All);
            solr.AddWithBoost(p, 2.2);
            solr.Commit();

            solr.Query(new SolrQueryByField("name", @"3;Furniture"));
            var products = solr.Query(new SolrQueryByRange <decimal>("price", 10m, 100m).Boost(2));

            Assert.AreEqual(1, products.Count);
            Assert.AreEqual(name, products[0].Name);
            Assert.AreEqual("SP2514N", products[0].Id);
            Assert.AreEqual(guid, products[0].Guid);
            Assert.AreEqual(92m, products[0].Price);
            Assert.IsNotNull(products[0].Prices);
            Assert.AreEqual(2, products[0].Prices.Count);
            Assert.AreEqual(150m, products[0].Prices["regular"]);
            Assert.AreEqual(100m, products[0].Prices["afterrebate"]);
            Assert.IsNotNull(products.Header);
        }