小编ldx*_*ldx的帖子

如何使用ElasticSearch搜索单词的一部分

我最近开始使用ElasticSearch,我似乎无法让它搜索一个单词的一部分.

示例:我在我的couchdb中有三个索引在ElasticSearch中索引的文档:

{
  "_id" : "1",
  "name" : "John Doeman",
  "function" : "Janitor"
}
{
  "_id" : "2",
  "name" : "Jane Doewoman",
  "function" : "Teacher"
}
{
  "_id" : "3",
  "name" : "Jimmy Jackal",
  "function" : "Student"
} 
Run Code Online (Sandbox Code Playgroud)

所以现在,我想搜索包含"Doe"的所有文件

curl http://localhost:9200/my_idx/my_type/_search?q=Doe
Run Code Online (Sandbox Code Playgroud)

这不会返回任何命中.但是,如果我搜索

curl http://localhost:9200/my_idx/my_type/_search?q=Doeman
Run Code Online (Sandbox Code Playgroud)

它确实返回一个文件(John Doeman).

我尝试过设置不同的分析器和不同的过滤器作为索引的属性.我也试过使用完整的查询(例如:

{
  "query": {
    "term": {
      "name": "Doe"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但似乎没有任何作用.

当我搜索"Doe"时,如何让ElasticSearch找到John Doeman和Jane Doewoman?

UPDATE

我尝试使用nGram标记器和过滤器,就像Igor提出的那样,如下所示:

{
  "index": {
    "index": "my_idx",
    "type": "my_type",
    "bulk_size": "100",
    "bulk_timeout": "10ms",
    "analysis": {
      "analyzer": {
        "my_analyzer": { …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

116
推荐指数
7
解决办法
9万
查看次数

Mojolicious url_for:绝对路径

我目前正试图将我的一个较小的催化剂应用程序移植到Mojolicious(只是为了它的乐趣).

假设我们在页面上:http://whatever.com/generate.在该页面上有一个链接,例如"生成"

使用催化剂(使用TT模板)并将链接定义为

uri_for 'generated'
Run Code Online (Sandbox Code Playgroud)

它将生成一个指向http://whatever.com/generate/generated的链接 但是如果你将其定义为

uri_for '/generated'
Run Code Online (Sandbox Code Playgroud)

它将生成一个指向http://whatever.com/generated的链接

我尝试用Mojolicious'url_for做同样的事情,但似乎工作方式不同.我打电话的时候并没有什么不同

url_for 'generated'
Run Code Online (Sandbox Code Playgroud)

要么

url_for '/generated'
Run Code Online (Sandbox Code Playgroud)

两个调用都生成一个'/ generate/generated'的链接

所以我的问题是:如何让url_for生成绝对路径的链接.即'/ generated'

谢谢,Gr,ldx

perl catalyst mojolicious

9
推荐指数
2
解决办法
3565
查看次数

MultipartFormDataStreamProvider清理

如果文件发布到我的webapp,那么我通过它阅读MultipartFormDataStreamProvider.FileData.

我像这样初始化提供者:

string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
Run Code Online (Sandbox Code Playgroud)

并且提供程序很好地将它们存储为"~App_Data/BodyPart_ {someguid}"但是如何在完成这些文件之后清理它们?

asp.net

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

禁用Azure网站上的池回收

我在Azure网站上部署了一个网站,我想禁用池回收.

如果您有常规IIS安装,则可以通过将"Recycling - > Disable overlapped recycle"设置为true来在应用程序池高级设置中禁用此功能.

但我似乎无法在azure管理控制台中找到此选项,也无法在线找到有关此主题的任何信息.

任何指针将不胜感激!

iis azure azure-web-sites

6
推荐指数
2
解决办法
2577
查看次数