我已经使用以下命令创建了ES索引:
curl -X PUT -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"settings" :{"number_of_shards" : 10, "number_of_replicas" : 0, "analysis":{"analyzer": {"my_analyzer": {"type": "custom", "tokenizer":"whitespace","filter":["lowercase","porter_stem"],"stopwords":[...stopwords here ...]}}}}, "mappings" : {"html" : {"properties" : "head" : { "type" : "text", "analyzer": "my_analyzer" }, "body" : { "type" : "text", "analyzer": "my_analyzer"}}}}}' localhost:9200/docs
我读过here:
已分析的字符串字段将职位作为默认值,所有其他字段将docs作为默认值。
由于我的字段是text
类型,因此它们被视为字符串字段吗?
我的主要问题是如何知道每个字段的索引包含哪些内容(文档或职位?)!我使用了\docs\_settings
命令来获取索引设置,但是没有得到有用的答案?
有任何提示吗?
除了下面@ibexit的答案,我实际上通过针对ES索引发出短语查询来验证了这一点。
答案 0 :(得分:1)
您将字段定义为文本,而未在映射中指定index_options。在这种情况下,将应用文本字段的默认值(index_options = positions)。现在,反向索引将包含文本字段的文档编号,术语频率和术语位置(或顺序)。
有关倒排索引的更多详细信息,请查看https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up或https://youtu.be/x37B_lCi_gc 这应该是您进行研究的一个很好的起点。
干杯!