小编Mat*_*can的帖子

ElasticSearch NEST搜索多个类型和所有字段

使用ElasticSearch NEST,我无法从查询中获得预期的结果.我的索引/类型布局如下:

  • 剧院(指数)
    • 事件(类型)
    • 剧院
    • 提升
    • 通用内容

每种类型都有自己的字段,我使用NEST的Index()方法来索引数据.我可以通过以下方式验证它是否正确编入索引:

  • 看着 http://localhost:9200/theatres/_mapping
  • 使用Head插件查看数据

供参考,这是我的客户端配置:

// TODO: Put settings in config
var node = new Uri("http://localhost:9200");
var connSettings = new ConnectionSettings(node);
connSettings.SetDefaultIndex("theatres");
connSettings.ThrowOnElasticsearchServerExceptions();

var client = new ElasticClient(connSettings);
Run Code Online (Sandbox Code Playgroud)

查询

现在,对于查询,我想搜索索引中的所有类型和所有字段.使用Head插件,我能够生成查询并获得预期的结果:在此输入图像描述

使用它生成的查询,我尝试了以下NEST查询:

var query = "waukesha"; // This would be passed in

var resp = client.Search<dynamic>(s => s
   .From(0)
   .Take(10)
   .Query(qry => qry
       .Bool(b => b
       .Must(m => m
           .QueryString(qs => qs
               .DefaultField("_all")
               .Query(query))))));
Run Code Online (Sandbox Code Playgroud)

但是,这给了我不同的结果.NEST是否在幕后做了我不知道的事情?或者这不受支持?

c# search elasticsearch nest

13
推荐指数
1
解决办法
1万
查看次数

Controller构造函数中的ASP.NET核心访问User.Identity

我有一个场景,我需要User.Identity在我的构造函数的控制器中访问声明.

我需要这个,因为声明有我需要的信息来启动自定义数据库上下文(连接字符串)

我怎么去访问这个?我只是注入DBContext,但基于用户,他们可能需要访问不同的DB.

有没有更好的方式来考虑这个?

[Authorize]
public class DefaultController : Controller
{
    public DefaultController()
    {
        // this is NULL
        var authenticatedUser = User.Identity.Name;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core asp.net-core-mvc asp.net-core

8
推荐指数
2
解决办法
6263
查看次数

Kendo UI Async Upload无法在Internet Explorer中运行

我正在尝试在异步模式下使用Kendo UI Upload(MVC包装器).事情似乎在Chrome中运行良好,但在IE中没有这样的运气(截至目前仅在IE 9中测试过).当它启动上传时,我可以看到它命中我的操作方法,并且请求包含我期望的数据,但实际上没有任何内容被保存.

代码示例如下:

_EditForm.cshtml(上传的位置)

@(Html.Kendo().Upload()
    .Name(string.Format("upload{0}", "background"))
    .Multiple(true)
    .Events(evt => evt.Success("refreshBackgroundImages"))
    .Messages(msg => msg.DropFilesHere("drag and drop images from your computer here")
                        .StatusUploaded("Files have been uploaded"))
    .Async(a => a.AutoUpload(true)
                 .SaveField("files")
                 .Save("UploadImage", "Packages", new { siteId = Model.WebsiteId, type = "background" })))
Run Code Online (Sandbox Code Playgroud)

控制器ActionMethod

[HttpPost]
public ActionResult UploadImage(IEnumerable<HttpPostedFileBase> files, Guid siteId, string type)
{
        var site = _websiteService.GetWebsite(siteId);
        var path = Path.Combine(_fileSystem.OutletVirtualPath, site.Outlet.AssetBaseFolder);
        if (type == "background")
        {
            path = Path.Combine(path, _backgroundImageFolder);
        }
        else if (type == "image")
        {
            path …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asyncfileupload asp.net-mvc-4 kendo-ui kendo-asp.net-mvc

7
推荐指数
1
解决办法
6150
查看次数

选择奇数/偶数子div

我正试图从代码服务器端动态创建一本"书".该部分工作正常,并生成类似于以下内容的输出:

<div id="pagesContainer">
    <div class="pageContent">
         <div>
             Page 1 content
         </div>
    </div>
    <div class="pageContent">
         <div>
             Page 2 content
         </div>
    </div>
    <div class="pageContent">
         <div>
             Page 3 content
         </div>
    </div>
    <div class="pageContent">
         <div>
             Page 4 content
         </div>
    </div>
    <div class="pageContent">
         <div>
             Page 5 content
         </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要做的是,最好使用jQuery将类添加到最内层的div中,例如page-leftpage-right.例如,第1页,第3页和第5 page-left页将获得,而第2页和第4页将获得page-right.可能还有更多(或更少)5页.我尝试使用一堆不同的偶数/奇数选择器方案,但似乎无法让它正常工作.

有人能指出我正确的方向吗?

谢谢!

jquery jquery-selectors

0
推荐指数
2
解决办法
1万
查看次数

剑道窗口关闭不清楚吗?

我有一个使用kendoWindow打开弹出窗口的链接.每次我关闭弹出窗口并再次重新打开(从另一个链接),第一个的值根本不会清除.仅供参考,此kendo弹出窗口可重复使用.

例如:我有2个链接.链接A和链接B.

此链接将使用参数从控制器调用ActionResult.

链接A将生成text ='AAAAAAAAAAAAAA',而链接B将生成text ='BBBBBBBBBBB'

//In controller:
public ActionResult Caller(string param)
{
    ViewModel viewModel = new ViewModel(); //This is a class that store a string.
    if(param == "A")
    {
        viewModel.Result = "AAAAAAAAAAAAAA";
    }
    else
    {
        viewModel.Result = "BBBBBBBBBBB";
    }
    return View(viewModel);
}
Run Code Online (Sandbox Code Playgroud)

所以流程是:1.单击链接A.它将打开弹出窗口,其值为= AAAAAAAAAAAAAA.2.关闭弹出窗口.3.重新打开Link B的弹出窗口.有一段时间,它将保留AAAAAAAAAAAAAA,之后(可能大约需要2秒)它将变为BBBBBBBBBBB.

如果在连接速度较慢的情况下,将AAAAAAAAAAAAAA更改为BBBBBBBBBBB需要一些时间.

我的问题是:为什么弹出窗口不会弹出空白(它仍然在布局上保存旧值)?

维拉,提前谢谢

asp.net-mvc kendo-ui kendo-asp.net-mvc

0
推荐指数
1
解决办法
9611
查看次数