用Solrnet制作一个Solrnet小平面



我正在构建一个MVC4应用程序来搜索wiki文档。一切正常,但我无法找出使分面可链接的最佳方法。

我在起始页上查看了各个方面,以便更轻松地找到您要查找的关键字:

             var products = solr.Query(SolrQuery.All,
                                  new QueryOptions {
                                      Rows = 0,
                                      Facet = new FacetParameters {
                                          Queries = new[] { new SolrFacetFieldQuery("products") }
                                      }
                                  });
        foreach(var facet in products.FacetFields["products"]) {
            var catagoryFacet = new CategoryFacet(facet.Key, facet.Value);
            facetProductList.Add(catagoryFacet);
        }

然后我在视图中循环浏览列表,如下所示:

<h2> Products: </h2>
@foreach (var facet in Model)
{
    foreach(var item in facet.products) {    
        <td><a href="http://localhost:5000/Home/FreeSearch?search=@Html.DisplayFor(ModelItem => item.Name)">@Html.DisplayFor(ModelItem => item.Name), @Html.DisplayFor(ModelItem => item.Count)</a></td> <br/>
    }   

但是使用这种方法,当用户单击链接时,发生的事情是我将facet的单词发送回控制器,因为我知道该关键字存在,因此对该关键字进行搜索。

我知道这是一种糟糕的方式,所以我试图找出一种更好的方法,并且由于我来自瑞典,如果我使用任何"åäö",链接就会断开。可以通过javascript处理,但它感觉非常丑陋,那么我怎样才能以更好的方式做到这一点呢?

我一直在查看过滤器查询,但如何使其可链接?

问候乔纳森

我只需将Url.Encode放在 Item.Name 上即可解决它。现在搜索工作了,如我所愿。

<h2> Products: </h2>
@foreach (var facet in Model)
{
    foreach(var item in facet.ProductFacets) {    
        <td><a href="http://localhost:5000/Home/FreeSearch?search=@Url.Encode(item.Name)">@Html.DisplayFor(ModelItem => item.Name), @Html.DisplayFor(ModelItem => item.Occurrences)</a></td> <br/>
    }

最新更新