elasticsearch - 在Rails应用程序中使用Elasticsearch逐个索引

标签 elasticsearch ruby-on-rails-5

有谁知道在Elasticsearch中逐字母索引数据的最佳方法是什么?我有Rails应用程式巫婆,我在我的应用程式中使用elasticsearch作为搜寻引擎。在我的Rails应用程序中,我有很多包含文章的内容,在我的实现中,我可以搜索文章并完美返回结果,我有多个过滤器,例如ngram-edge gram-whitespace和...。如果用户键入完全完整的单词,并且一切正常,并且在我的设计中我有一些类似ngram的过滤器,那么在这种状态下,如果他/她键入一个字母,他/她可以返回一些结果,则我想为用户提供帮助但我想用松紧带做。
如果用户输入至少三个或四个字母的松紧带可以返回结果,则在最佳状态下,我会帮助我。
我正在使用ngram过滤器
边缘克过滤器
正则表达式
还有...
但它们都没有用。

最佳答案

您需要在elasticsearch中使用suggest查询,如下所示:

{
 "suggest": {
 "auto-complete-suggest": {
 "prefix": "Your prefix text",
 "completion": {
  "size" : 5,
  "field": "text_completion"
 
      }
    }
  }
}
您的映射将如下所示:
{
  "mappings": {
    "properties": {
      "text_completion": {
        "type": "completion",
        "analyzer": "Your analyzer"
      }
    }
  }
}

关于elasticsearch - 在Rails应用程序中使用Elasticsearch逐个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64317922/

相关文章:

ruby-on-rails - 表格和 .where() 条件之间的 Rails .joins()

ruby-on-rails-5 - 如何将 rails ActiveStorage 附件放在 Prawn pdf 中?

sql - 在 React 迭代中显示最后一个 child

elasticsearch - Elasticsearch查询以一个月的最新日期形式获得不同的结果

elasticsearch - 在Docker中运行Elasticsearch

elasticsearch - 字段值汇总(正则表达式)

mysql - Rails : List items by frequency, 包括频率

elasticsearch - Marvel 无法连接到 Elasticsearch 节点

java - 连接拒绝从 docker 连接到 Elasticsearch docker 容器

postgresql - 沉默 "unknown OID 17227: failed to recognize type of '地理'。它将被视为字符串。”