关于综合指数



定义复合索引时,例如

create table temptable (id integer, id2 integer, name string, INDEX ci using plain(id2, id));

id和id2在elasticsearch中使用integer索引,但是我从ES的_mapping中看到的是:

      "ci" : {
        "type" : "string",
        "analyzer" : "standard"
      },

其中id和id2都以"string"类型复制到ci。

你能解释一下这个吗(比如保存的顺序),或者再解释一下crate数据中的复合索引吗?

你发现了2个bug,我们会尽快修复。;)

首先,使用普通索引类型应该导致"关键字"分析器而不是"标准"分析器。

第二,超过2个非字符串列的组合不应该产生字符串类型的列,但如果支持,则应该是与原始列相同类型的列。我写"if supported"是因为目前,我们不允许在非字符串列上定义复合索引,因为我们不知道这是为了什么。
我们目前的match函数实现只支持字符串字面值,所以这个函数不能用于查询复合索引。
您能解释一下您的用例吗?
也许在github上创建一个问题对于这种可能的增强是有意义的。

用于定义复合索引的列的顺序根本不重要,如果是字符串,将分析两个列的值,并将结果项插入/合并到目标字段。

谢谢你的报告!

相关内容

  • 没有找到相关文章

最新更新