Php 拉威尔搜索引擎
我正在为一个移动应用程序使用Laravel构建一个RESTAPI。现在我需要一个搜索引擎 首先,我从未使用过任何搜索引擎。因此,我正在寻找一个简单的工作,但仍然善于全文搜索和过滤“哪里” 我要对其执行搜索的表有1列(varchar45),需要通过全文搜索进行搜索,然后有5列(int),用于使用“where”语句进行筛选。-使用mysql方法。我还对该表执行内部联接,以便在生成结果时打印出一些其他内容 所以我看了《斯芬克斯》和《Elasticsearch》,决定选择《ES》 我观看了拉拉康的ES简介: 我还看了一下这个包裹: 这给我留下了几个问题: 1)我是否要删除mysql数据库并将所有数据存储在ES中 2)如果1-yes,我还可以使用mysql数据库,只使用ES存储索引吗因为我只需要在一个表上执行搜索(总共搜索5行) 3如果2-yes,我是否仍将当前索引保留在mysql表中?例如,标题栏上的全文索引,另一列上的FK和其他3列上的索引 4由于这是我第一次使用搜索引擎,是否有其他教程/书籍/片段介绍如何将ES与Laravel一起使用Php 拉威尔搜索引擎,php,mysql,search,laravel,elasticsearch,Php,Mysql,Search,Laravel,elasticsearch,我正在为一个移动应用程序使用Laravel构建一个RESTAPI。现在我需要一个搜索引擎 首先,我从未使用过任何搜索引擎。因此,我正在寻找一个简单的工作,但仍然善于全文搜索和过滤“哪里” 我要对其执行搜索的表有1列(varchar45),需要通过全文搜索进行搜索,然后有5列(int),用于使用“where”语句进行筛选。-使用mysql方法。我还对该表执行内部联接,以便在生成结果时打印出一些其他内容 所以我看了《斯芬克斯》和《Elasticsearch》,决定选择《ES》 我观看了拉拉康的ES简
提前感谢我最近也在解决同样的问题。 我的意见是: 1.否。一定要保留数据库以存储数据。ES不是用来替换数据库的。它主要是搜索引擎 4.你可以在这里找到不错的教程:(作为起点)
我建议你也阅读(更好地理解ES)我个人仍然将所有信息存储在MySQL上,我只是在elasticsearch中存储大表,并仅用于搜索大数据,其中完整索引很慢,或者我需要获得有序的结果。还请记住,将数据存储在某种数据库中会有好处。将所有信息存储在ES上并不好,因为据我所知,没有快速的方法导出ES数据并将其导入另一台服务器。如果您选择在ES中仍然使用MySQL,只保留您需要的索引(例如,如果您不是按全文搜索,请将其删除)。谢谢Igor。然后我就有一份ES表格的副本。我以前发现过那个教程,它很棒。我甚至在laracasts论坛上把它链接起来,因为我看到很多人都在问关于ES的问题。现在我面临着一个新问题,以防你有时间去研究它。首先,我无法将MySql时间戳映射到ES中,我尝试了long/timestamp/integers,但都不起作用。你们可以在第二秒看到更多,我有一个ES排序函数的问题。我的查询看起来像$sort=['sort'=>['id'=>'desc']]$posts=Post::searchByQuery($query,null,null,null,$sort);