首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >所有属性的弹性搜索索引?

所有属性的弹性搜索索引?
EN

Stack Overflow用户
提问于 2017-11-28 17:54:17
回答 1查看 751关注 0票数 0

我对弹性搜索(ES)很陌生,并且读过一些基础教程,比如这是我的教程

我对创建任何文件的一部分有疑问。

创建操作示例以插入/mkyong/post/1001的新文档和以下请求数据:

代码语言:javascript
运行
复制
    {
      "title": "Java 8 Optional In Depth",
      "category":"Java",
      "published_date":"23-FEB-2017",
      "author":"Rambabu Posa"
    }

问题1 :- ES会对上述文档的所有属性(即默认情况下的title/category/published/author )创建倒排索引,并提供全文搜索,还是需要明确提及?

问题2 :-在上面的例子中,我们已经有了unique_id,即1001。如果我已经将它存储在DB中并生成ID,那么这很好。如果我需要通过ES引擎生成ID,而没有任何DB怎么办?

更新:-

指定在ElasticSearch中索引哪些字段获得了问题1的答案

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-28 20:45:10

问题1 :-是的,默认情况下ES会将您的字段作为两种不同类型的索引。一次作为“文本”,一次作为“关键字”作为像"title.keyword“这样的子字段。“文本”类型通过语言分析器来支持标准的搜索案例(删除停止词、词干词等)。“关键字”类型不会对数据进行任何更改和索引,就像支持精确匹配和聚合一样。您可以显式地告诉ES任何字段的映射,但如果没有,这是默认行为。

下面是一些关于文本vs关键字行为的信息:https://www.elastic.co/blog/strings-are-dead-long-live-strings

问题2 :- ES将自动为您在"_id“字段中索引的每个文档创建自己的内部ID。从技术上讲,您可以用您自己的ID替换它,但是通常您不想这样做,因为它会影响性能,因为它会使ES的散列算法扩展数据预置格式很差。通常最好只是在文档中添加您想要的任何ID作为新字段,并让ES为您索引它们,最好是作为关键字类型。

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-id-field.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47538008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档