我们正在使用ElasticSearch5.6.9来支持Django1.11服务器上的搜索。
如果我正在索引数据 example.com
寻找 example.com
我得到了搜索结果,但是如果我正在搜索 example
我没有任何搜索结果。
理想情况下,我想 example
以及 example.com
两者都可以工作并返回相同的搜索结果。
我怎样才能得到这种行为?
我想我将不得不改变分析器和标记器相同。
使用 simple
分析仪似乎是正确的选择。前任: POST _analyze { "analyzer": "simple", "text": "example.com" }
退货 example
以及 com
作为单独的代币 { "tokens": [ { "token": "example", "start_offset": 0, "end_offset": 7, "type": "word", "position": 0 }, { "token": "com", "start_offset": 8, "end_offset": 11, "type": "word", "position": 1 } ] }
我认为在索引数据和搜索查询时必须设置相同的分析器/标记器。
我试着设置 analyzer
至 simple
如下所述:https://www.elastic.co/guide/en/elasticsearch/reference/5.6/analyzer.html 不过,现在我还是要寻找 example.com
而不是 example
再加上现在我什么也没看到 highlight
搜索结果的名称。
我很困惑,这是如何导致一个搜索结果,但不是进入 highlight
.
我在这里完全不靠谱了吗?
1条答案
按热度按时间vkc1a9a21#
也许这个例子会对你有所帮助:
Map
添加文档
按示例搜索
举例说明结果
按example.com搜索
example.com的结果
我使用了多个字段来应用两个分析器(
standard
,这是默认值url
现场和simple
在url.simple
子字段)和matched_fields
组合高亮显示结果的步骤url
以及url.simple
进入一个领域。