コード例 #1
0
        private int FullTextSearch()
        {
            _indexFTSBench.Start();
            var nameExpr = Expression.Property("Name");
            var index    = Index.FullTextIndex().On(FullTextIndexItem.Expression(nameExpr));

            Db.CreateIndex("nameFTS", index);
            _indexFTSBench.Stop();

            var ARTIST  = Expression.Property("Artist");
            var ALBUM   = Expression.Property("Album");
            var NAME    = Expression.Property("Name");
            var results = new List <string>();

            using (var q = Query.Select(SelectResult.Expression(ARTIST), SelectResult.Expression(ALBUM),
                                        SelectResult.Expression(NAME))
                           .From(DataSource.Database(Db))
                           .Where(NAME.Match("'Rock'"))
                           .OrderBy(Ordering.Property("Artist"), Ordering.Property("Album"))) {
                _queryFTSBench.Start();
                using (var rows = q.Execute()) {
                    foreach (var row in rows)
                    {
                        results.Add(row.GetString(2));
                    }
                }
            }

            _queryFTSBench.Stop();
            results.Count.Should().Be(30);
            return(results.Count);
        }