elasticsearch 用于ElasticSearch的类似SQL的模拟命令,elasticsearch,sql-like,fuzzy-search,elasticsearch,Sql Like,Fuzzy Search" /> elasticsearch 用于ElasticSearch的类似SQL的模拟命令,elasticsearch,sql-like,fuzzy-search,elasticsearch,Sql Like,Fuzzy Search" />

elasticsearch 用于ElasticSearch的类似SQL的模拟命令

elasticsearch 用于ElasticSearch的类似SQL的模拟命令,elasticsearch,sql-like,fuzzy-search,elasticsearch,Sql Like,Fuzzy Search,告诉我ElasticSearch的类似SQL的模拟命令 SQL命令: SELECT * FROM cities where 'blah Chicago blah' LIKE CONCAT('%', name, '%'); 预期输出:[{id:123,名称:'Chicago'}] 这应该用于文本中实体的模糊搜索。这不完全是您需要的,但我们可以从以下方面开始: { "query": { "query_string": { "default_field": "Name", "query

告诉我ElasticSearch的类似SQL的模拟命令

SQL命令:

SELECT * FROM cities where 'blah Chicago blah' LIKE CONCAT('%', name, '%');
预期输出:[{id:123,名称:'Chicago'}]



这应该用于文本中实体的模糊搜索。

这不完全是您需要的,但我们可以从以下方面开始:

{
  "query": {
    "query_string": { "default_field": "Name", "query": "Chicago" }
  }
}
此查询返回所有带有工作
Chicago
的文档

您可以修改查询:

{
  "query": {
    "query_string": { "default_field": "Name", "query": "*Chicago*" }
  }
}

在这种情况下,您将获得带有单词
Chicago
和包含单词
Chicago
-
ChicagoTown
的文档。例如,弹性搜索不适用于此类任务( 它的目的是将文本作为一个单词数组,而不是一个字符数组)


现在我使用pg_trgm(word_similarity(text,text))扩展名来完成我的任务。

谢谢你的回答。我使用这个解决方案有一段时间了。使用pg_trgm扩展可能是解决此问题的最佳方法。