MongoDB Atlas Hackathon提交-Cookreview
#react #fastapi #mongodb #atlashackathon22

我对MongoDB Atlas Hackathon提交的提交是一个名为 cookreview 的Web应用程序,该应用程序可让您根据以前的客户评论的全文搜索在美国找到餐厅。多亏了社区,您可以在餐厅找到更多您在其他网站上找不到的信息(例如,价格/质量比,活动,氛围)

Image description

类别提交:

事件是使用农场堆栈构建的,该项目在搜索中更不再类别中,因为它很大程度上取决于MongoDB Atlas搜索功能。

ATLAS搜索在这里用于3种不同的用例:

基于用户输入的全文搜索

当用户搜索餐厅时,查询要查找应匹配用户输入的相关信息,如果找到该信息,则该分数将以3个要素3的速度提高Doc,因为它是一个完美的匹配。

如果用户单击素食主义者和纽约市,则将这两个参数放在必须的条件下,表示查询必须匹配这两个参数。我们不能推荐纽约以外的非素食餐厅或纽约以外的一家餐厅来寻找这些餐厅。

选择查询结果的另一种方法是通过提供等效词的集合来增强查询结果,使用Atlas搜索的同义词特征Docs。为此,我创建了两个不同的收藏

  • 为了增强地理用户输入,一个包含美国所有状态及其ISO缩写的集合,因此,当用户输入完整的状态名称时,Atlas搜索可以将链接链接到邮政编码。

State Name - ISO

  • 添加更多具有相同含义的单词,例如咖啡馆和咖啡等等

Synonyms

基于餐厅信息的智能选择图标

我用Atlas Search制作的另一种用法是找到与餐厅名称和类型相对应的最佳图标,所以我不必这样做

用它在使用中,我写了这个简单的查询

[
    {
        "$search": {
            "index": "default",
            "text": {
                "query": <RESTAURANT_INFO>,
                "path": {
                    "wildcard": "*"
                }
            }
        }
    },
    {
        "$limit": 3
    },
    {
        "$project": {
            "id": {
                "$toString": "$_id"
            },
            "_id": 0,
            "Name": 1,
            "filename": 1,
            "score": {
                "$meta": "searchScore"
            }

        }
    }
]

进入此集合,每个SVG图标都链接到描述它的单词。

Svg
这是一个示例,其中选择的图标为寿司

Image description

餐厅名称的自动完整

使用mongodb atlas seach自动完成功能,我能够快速根据餐厅名称制作自动完成系统

Image description

[
    {
        "$search": {
            "index": "reviews",
            "autocomplete": {
                "query": "",
                "path": "Name"
            }
        }
    },
    {
        "$limit": 3
    },
    {
        "$project": {
            "id": {
                "$toString": "$_id"
            },
            "_id": 0,
            "Name": 1
        }
    }
]

应用链接

http://cookreview.duranbe.tech

Image description

源代码

https://github.com/duranbe/restaurants-reviews

项目背后的故事

最初的想法是通过浏览kaggle来出现的。作为机器学习毕业生和来源软件工程师,我想构建一个数据驱动的应用程序。

我如何建造它

构建此项目时,我了解了有关MongoDB的更多信息,Atlas搜索功能为开发器提供了很多选择,并解决了许多问题,例如自动完整功能。

我还了解了有关React和Tailwind的更多信息,因为这是我从事这些技术的第一个大项目。

资源

mongodb地图集搜索:https://www.mongodb.com/docs/atlas/atlas-search/atlas-search-overview/
反应:https://reactjs.org
尾风:https://tailwindcss.com
Drawkit(插图):https://www.drawkit.com
快速API:https://fastapi.tiangolo.com