我想构建一个搜索功能,例如Airbnb搜索房东或Booking.com搜索酒店。我要的是技术堆栈解决方案,而不是代码实现。因此,我想知道需要将哪些技术组合在一起才能实现此功能。示例如下:
Airbnb search 北京 Airbnb search Shanghai
从以上示例中,您可以看到我要实现的一些基本功能:
用户可以输入不同的语言,但得到的结果相同。 (例如,搜索“ Shanghai”和“上海”将返回与上述相同的结果)
如果用户输入晦涩的单词,它将与该术语的一些相关结果匹配。 (例如,搜索“ Shangh”将与“ Shanghai”和“ Shanghai”都匹配)
建议数据可以附加到地理空间坐标上,因此搜索结果也包括地理位置信息。
重要提示:数据是从我自己的数据库而不是Google Maps API等中检索的。数据可以是城市名,国家名,产品名,食品名等。>
针对上述要求,我自己提出了一些可能的解决方案:
我不知道要进行语言转换。
仅通过对匹配的相关字符串进行数据库的文本搜索,即可完成对模糊单词的匹配。如果需要提高准确性,则可能需要一些机器学习知识,例如NLP。
这可以通过直接在数据库内部添加地理空间函数来完成。
我正在使用的数据库是MongoDB。首选基于MongoDB的解决方案。我不确定我的解决方案是否正确。我知道此功能现在很流行,所以我想知道行业标准技术堆栈将在此功能中做什么。尤其是对于语言转换!