2017-10-16 209 views
0

我有一个字段,它是一个句子(字符串)数组。如果单词在句子中,我想在数组内搜索。Elasticsearch查询:在句子数组中匹配单词

"fields": { 
      "title": [ 
       "The book of the world" 
      ] 
     } 

的简单查询 “书” 不返回预期的结果:

GET catalog/_search 
    { 
    "fields" : "title", 
    "query":{ 
     "match" : { 
      "title":"book" 
     } 
    } 
} 

你有一个想法?

+0

能告诉你的映射? GET目录/ _映射 – Miek

+0

映射是:''tokenizer“:”standard“' – OussamaM

回答

1

在将数据添加到索引之前,您必须先配置分析器。

分析仪是将句子“拆分”为标记(此处为“”“世界”的“书”“或”移除停用词“书”“世界”)的事物。

请务必阅读正文https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-analyzers.html

文档还关注如何Elasticsearch涉及阵列:https://www.elastic.co/guide/en/elasticsearch/reference/current/array.html

+0

默认的分析器被一个不分割内容的分量重载 – OussamaM

1

在这种情况下,字段名是fields.title不是所有权。

尝试:

GET catalog/_search 
{ 
    "fields" : "fields.title", 
    "query":{ 
     "match" : { 
      "fields.title":"book" 
     } 
    } 
} 
相关问题