标签: analyzer

如何在ElasticSearch中创建索引时指定分析器

我想指定一个分析器,命名它,并在创建索引时在映射中使用该名称.我输了,我的ES实例总是给我一个错误信息.

这大致就是我想做的事情:

"settings": {
  "mappings": {
    "alfedoc": {
      "properties": {
        "id": { "type": "string" },
        "alfefield": { "type": "string", "analyzer": "alfeanalyzer" }
      }
    }
  },
  "analysis": {
    "analyzer": {
      "alfeanalyzer": {
        "type": "pattern",
        "pattern":"\\s+"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用; ES实例总是给我一个错误

MapperParsingException[mapping [alfedoc]]; nested: MapperParsingException[Analyzer [alfeanalyzer] not found for field [alfefield]];
Run Code Online (Sandbox Code Playgroud)

我尝试将"analysis"字典的分支放在几个地方(在映射等内部),但无济于事.我想一个完整的例子(我现在找不到)也会帮助我.可能我错过了一些基本的东西.

mapping indexing analyzer elasticsearch

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

制作词法分析器

我正在使用Lexical Analyzer程序,我正在使用Java.我一直在研究这个问题的答案,但直到现在我都找不到.这是我的问题:

输入:

System.out.println ("Hello World");
Run Code Online (Sandbox Code Playgroud)

期望的输出:

Lexeme----------------------Token

System [Key_Word]

.       [Object_Accessor]

out   [Key_Word]

. [Object_Accessor]

println  [Key_Word]

(  [left_Parenthesis]

"Hello World"    [String_Literal]

)   [right_Parenthesis]

;  [statement_separator]
Run Code Online (Sandbox Code Playgroud)

我还是初学者,所以我希望你们能帮助我.谢谢.

java analyzer lexical

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

Elasticsearch:如何列出特定索引使用的每个分析器

我需要找出在特定索引中配置的分析器(类型,语言..).我试过http://localhost:9200/wazzup/_mapping但它只提供有关字段名称/类型的信息.

谢谢

indexing snowball analyzer elasticsearch

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

我怎么知道Postgres表的统计数据是否是最新的?

在pgAdmin中,只要表的统计信息已过期,它就会提示:

建议运行VACUUM

表schema.table上的估计rowcount与实际rowcount明显不同.您应该在此表上运行VACUUM ANALYZE.

我用pgAdmin 3和Postgres 8.4.4测试了它,autovacuum = off.每当我单击已更改的表时,会立即显示提示.

假设我正在用Java创建一个基于Web的系统,如何检测表是否已过时,以便我可以在pgAdmin中显示提示?

由于我的应用程序的性质,这里有一些我必须遵循的规则:

  1. 我想知道pg_stats和pg_statistic中某个表的统计信息是否是最新的.

  2. 我无法在postgresql.conf中设置autovacuum标志.(换句话说,autovacuum标志可以打开或关闭.我无法控制它.我需要判断统计数据是否是最新的autovacuum标志是打开还是关闭.)

  3. 我无法每次都进行真空/分析以使其保持最新状态.

  4. 当用户选择一个表时,我需要在pg_stats和pg_statistic中没有反映此表的任何更新(例如drop,insert和update)时显示表已过时的提示.

通过分析pg_catalog.pg_stat_all_tables中的时间戳,似乎不可行.当然,如果以前没有分析过某个表,我可以检查它是否在last_analyze中有一个时间戳,以确定该表是否是最新的.但是,使用此方法,当已经有时间戳时,我无法检测表是否是最新的.换句话说,无论我向表中添加多少行,pg_stat_all_tables中的last_analyze时间戳总是用于第一次分析(假设autovacuum标志已关闭).因此,我只能首次显示"正在运行VACUUM"提示.

通过将last_analyze时间戳与当前时间戳进行比较,这也是不可行的.几天内可能没有对表格进行任何更新.一小时内可能会有大量的更新.

鉴于这种情况,我怎样才能始终判断表的统计信息是否是最新的?

postgresql statistics vacuum analyzer

17
推荐指数
2
解决办法
3万
查看次数

edge ngram标记过滤器与ngram标记过滤器的区别?

由于我不熟悉弹性搜索,我无法识别ngram令牌过滤器边缘ngram令牌过滤器之间的区别.

处理令牌时这两者如何相互不同?

token analyzer elasticsearch

14
推荐指数
2
解决办法
8569
查看次数

在elasticsearch中搜索带空格的名称(文本)

搜索包含空格的名称(文本),给我带来问题,我的映射类似于

"{"user":{"properties":{"name":{"type":"string"}}}}"
Run Code Online (Sandbox Code Playgroud)

理想情况下它应返回并按如下方式对结果进行排名

1) Bring on top names that exact match the search term (highest score)
2) Names that starts with the search term (high score)
3) Names that contains the exact search term as substring (medium score)
4) Names that contains any of the search term token  (lowest score)
Run Code Online (Sandbox Code Playgroud)

示例对于elasticsearch中的以下名称

Maaz Tariq
Ahmed Maaz Tariq
Maaz Sheeba
Maaz Bin Tariq
Sana Tariq
Maaz Tariq Ahmed
Run Code Online (Sandbox Code Playgroud)

搜索"Maaz Tariq",结果应按以下顺序排列

Maaz Tariq (highest score)
Maaz Tariq Ahmed (high score)
Ahmed Maaz Tariq …
Run Code Online (Sandbox Code Playgroud)

search tokenize analyzer elasticsearch

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

Elasticsearch 无法更新非动态设置

我正在尝试创建一个测试分析器来试验对弹性搜索的分析。我创建了一个名为“mytest”的索引,该索引可用且可搜索,但是当我尝试创建自定义分析器时,出现以下错误

{
"error": "ElasticsearchIllegalArgumentException[Can't update non dynamic settings[[index.analysis.analyzer.content.type, index.analysis.analyzer.content.tokenizer]] for open indices [[mytest]]]",
"status": 400
}
Run Code Online (Sandbox Code Playgroud)

现在我不确定更新设置的限制,但我在文档中找不到任何内容。我可以在创建索引时创建分析,但更新不起作用。

使用下面的源创建分析器

PUT mytest/_settings
{
  "analysis" : {
    "analyzer":{
      "content":{
        "type":"custom",
        "tokenizer":"whitespace"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

indexing analyzer elasticsearch

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

elasticsearch删除自定义分析器/过滤器

我是弹性搜索的新手,我想知道是否可以从索引中删除自定义分析器或自定义过滤器.

例如,假设以下索引设置:

    "settings" : {
        "analysis": {
            "filter":{
                "filter_metaphone":{
                    "encoder": "metaphone",
                    "type": "phonetic",
                    "replace": "false"
                },
                "filter_unused":{
                    "type": "edgeNGram",
                    "max_gram": "10",
                    "min_gram": "1" 
                }
            },
            "analyzer":{
                "name":{
                    "type": "custom",
                    "filter": ["filter_metaphone"],
                    "tokenizer": "standard"
                }
            }
        }   
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法通过curl删除过滤器"filter_unused"而不删除并使用新的设置配置创建索引?

filter analyzer elasticsearch

11
推荐指数
1
解决办法
4585
查看次数

使用java api配置elasticsearch映射

在索引之前,我有一些我不想分析的弹性搜索字段.我已经读过,正确的方法是改变索引映射.现在我的映射看起来像这样:

{
  "test" : {
   "general" : {
      "properties" : {
        "message" : {
          "type" : "string"
        },
        "source" : {
          "type" : "string"
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

{
  "test" : {
   "general" : {
      "properties" : {
        "message" : {
          "type" : "string",
          "index" : "not_analyzed"
        },
        "source" : {
          "type" : "string"
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我一直试图通过改变设置

client.admin().indices().prepareCreate("test")
        .setSettings(getGrantSettings());
Run Code Online (Sandbox Code Playgroud)

getGrantSettings()的位置如下:

static Settings getGrantSettings(){
    JSONObject settingSource = new JSONObject();
    try{
        settingSource.put("mapping", new JSONObject()
        .put("message", new JSONObject() …
Run Code Online (Sandbox Code Playgroud)

java mapping analyzer elasticsearch

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

从roslyn分析器中排除文件

由于我们有很多生成的代码,一些roslyn分析器对此代码感到疯狂.有没有办法从分析仪中排除一些文件?

analyzer roslyn

10
推荐指数
1
解决办法
1583
查看次数