我调查的可能性从SphinxSearch
切换到ElasticSearch
。ElasticSearch:全文搜索变得容易
SphinxSearch
有什么好处 - 全文搜索只是在机器人的相当好的水平上工作。让它在ElasticSearch
上工作并不像我想象的那么容易。
在我的项目中,我有一个typeahead搜索框,意思是stype Clint E
,并看到下拉结果包括Clint Eastwood
在第一位。请输入robert down
,首先请参阅Robert Downey Jr.
。所有这些我用SphinxSearch
开箱即可实现,只需提供我的数据库凭据和SQL查询即可提取必要的字段。
在另一方面,ElasticSearch
我甚至不能阅读约Fuzzy Like This Query,matching,partial matching等了一天后,得到满意的结果。许多信息,但它不会让任务更容易。我觉得我需要成为博士才能在最简单的层面上工作。
到目前为止,我结束了这样的配置
{
"settings": {
"analysis": {
"analyzer": {
"stem": {
"tokenizer": "standard",
"filter": [
"standard",
"lowercase",
"stop",
"porter_stem"
]
}
}
}
},
"mappings": {
"movies": {
"dynamic": true,
"properties": {
"title": {
"type": "string",
"analyzer": "stem"
}
}
}
}
}
查询是这样的:
{
"query": {
"query_string": {
"query": "clint eastw"
"default_field": "title"
}
}
}
但在这种情况下,搜索的质量不令人满意时在所有 - 回到我的例子,它不能找到Clint Eastwood
配置文件,直到我完全键入他的名字。
然后我试图使用
{
"query": {
"fuzzy_like_this": {
"fields": [
"title"
],
"like_text": "clint eastw",
"max_query_terms": 25,
"fuzziness": 0.5
}
}
}
它可以帮助,但不是很多,现在我能找到我所需要用较短的要求clint eastwo
和一些操作与clint eastw
但仍不容乐观参数之后。
所以我想知道,是否有一个简单的食谱如何烹饪与ElasticSearch
全文搜索并获得体面的质量的结果。我花了一天的时间阅读,但没有找到解决方案。
夫妇图片来演示一下我所说的:
弹性,名字几乎完全,但没有预期的结果,请注意,有没有更好的比赛也是如此。后
一封信,弹性找到了!
在同一时刻闪耀着狮身人面像:)
感谢您的回答。我只是尝试了一下,它效果更好,当我为Clint Eastwood输入'Clint E'但却没有快乐时,它会产生结果,例如,当我输入'Eastwood Clint'时找不到那个人......并且再一次,狮身人面像完成这项工作。 – SmxCde
它看起来像'ElasticSearch'需要太多的努力,使其实际工作。可能它更有能力,但绝对不是快速启动:( – SmxCde