我目前正在将Elasticsearch作为搜索接口嵌入到现有的应用程序中。该应用程序是一个具有oracle SQL数据库的经典三层应用程序.到目前为止,我把它放在elasticsearch中,对于elasticsearch中的每一个db列都有一个属性。数据的同步和满载并不是问题。(我已经在结合使用uax_url_email令牌程序和keyword数据类型)
据我所知,multi_match类型cross_fields将是一个不错的选择,但它不能进行模糊搜索和通配符。most_fields也不适合,phrase ma
背景:我使用Mysql,有数百万的数据,每行有20列,我们有一些复杂的搜索和一些列使用模糊匹配,例如username like '%aaa%',它不能使用mysql索引,除非删除第一个%,但是我们需要模糊匹配来做类似Satckoverflow搜索的搜索,我也检查了Mysqlfulltext index,但如果使用其他索引,它不支持在一个sql中进行复杂的搜索。我的解决方案是:添加Elasticsearch作为我们的搜索引擎,在Mysql和Es中插入数据,只在Elasticsearch中