RavenDBとASP.NET MVCを使用して検索クエリを実行しようとしています。 名前、料理、都市または州を使ってレストランを検索できるようにしたい。 インデックスフォルダにインデックスRestaurants_ByName
Restaurants_ByCuisine
Restaurants_ByCity
Restaurants_ByState
を作成しました。 Restaurant.csRavenDBとASP.NET MVCで検索を実行するには?
public class Restaurant
{
public int Id { get; set; }
public string Name { get; set; }
public string Cuisine { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public int Postcode { get; set; }
public string PhoneNumber { get; set; }
public string Email { get; set; }
}
インデックス - - Search.cs
public class Searching
{
public class Restaurants_ByName : AbstractIndexCreationTask<Restaurant>
{
public Restaurants_ByName()
{
Map = restaurants => from restaurant in restaurants
select new
{
restaurant.Name
};
//Indexes.Add(x = x.Name, FieldIndexing.Analyzed);
}
}
public class Restaurant_ByCuisine : AbstractIndexCreationTask<Restaurant>
{
public Restaurant_ByCuisine()
{
Map = restaurants => from restaurant in restaurants
select new
{
restaurant.Cuisine
};
//Indexes.Add(x = x.Cuisine, FieldIndexing.Analyzed);
}
}
public class Restaurant_ByCity : AbstractIndexCreationTask<Restaurant>
{
public Restaurant_ByCity()
{
Map = restaurants => from restaurant in restaurants
select new
{
restaurant.City
};
//Indexes.Add(x = x.City, FieldIndexing.Analyzed);
}
}
public class Restaurant_ByState : AbstractIndexCreationTask<Restaurant>
{
public Restaurant_ByState()
{
Map = restaurants => from restaurant in restaurants
select new
{
restaurant.State
};
//Indexes.Add(x = x.State, FieldIndexing.Analyzed);
}
}
public Searching(string searchString)
{
using (var store = new DocumentStore
{
Url = "http://localhost:8080/",
DefaultDatabase = "foodfurydb"
})
{
store.Initialize();
using (var session = store.OpenSession())
{
// using query
IList<Restaurant> restaurants = session
.Query<Restaurant, Restaurants_ByName>()
.Where(x => x.Name == searchString)
.ToList();
}
}
}
}
私が必要とする今、私は私のSearch.cshtml
モデルに検索機能を使用する方法がわかりません私のコントローラで何かをする権利?
public ActionResult SearchRestaurant()
{
using (var store = new DocumentStore
{
Url = "http://localhost:8080/",
DefaultDatabase = "foodfurydb"
})
{
store.Initialize();
using (var session = store.OpenSession())
{
}
}
return View();
}
部分図 - SearchRestaurant.cshtml
<div class="row">
<div class="input-field col s12" id="search-bar">
<i class="material-icons prefix">search</i>
<input placeholder="Search by restaurant name/cuisine/location" id="search-restaurant"/>
</div>
</div>
編集
私は何を達成しようとしていることは、それが返す名前/料理/場所を入力することです関連する結果
'Indexes.Add(x = x.Cuisine、FieldIndexing.Analyzed);'この行に対して、現在のコンテキストに存在しないというエラーが発生しました。エラーを修正するためにプライベートオブジェクトxを作成する必要がありますか? –
@ jenna_3108あなたのコードスニペットには '>'がありません。 'Indexes.Add(x => x.Cuisine、FieldIndexing.Analyzed);' –