我是ElasticSearch的新手,我对目前的速度感到非常满意。 我仍然有一个我无法实现的要求。
ElasticSearch似乎在进行索引时拆分了以下文本:
"bmw.co.uk"
"apple_macbook_pro"
我使用ElasticSearch gem在这样的Ruby中搜索:
result = client.search index: 'elasticsearch_dev',
body: {
query: {
"bool" => {
"must" => {"match" => {"search_text" => {"query" => "bmw", "operator" => "and"}}},
"must_not" => {"match" => {"search_text" => {"query" => "", "operator" => "or"}}}
}
},
}
我想要实现的目标:
当我搜索“bmw”或“bmw.co”时,我希望bmw.co.uk
的记录匹配。
当我搜索“acboo”或“apple”时,我希望apple_macbook_pro
的记录匹配。
我如何实现这一目标?
添加信息
我看过这个网站,这是我想要做的,但并不完全:
如果我有网址:
uk-on-sale.com
我希望将其标记为:
[uk, on, sale, com, uk-on, on-sale, uk-on-sale.com, on-sale.com, sale.com, .com]
答案 0 :(得分:-1)
您是否尝试过"match_phrase"
查询?