实施高级搜索的最佳方式是什么,例如“{{Entity1}} {{Action}} {{Entity2}}”

时间:2016-05-11 05:50:25

标签: php mysql algorithm search

我的网站包含以下功能组,活动,网页和用户。

目前对群组名称,活动名称,网页名称和用户名的正常搜索工作甚至适用于他们的描述和帖子。

但我想实施一些智能搜索,就像有人搜索一样:

"Robert from New York" - it will return all users from new york whose name is robert

"Artist from London" - it will return all users who writes artists in their profession and city is London

"Developer in Google" - it will return all users who works puts writes developer in their profession and google in comapny

"Groups for Entertainment" - it will return all groups which is under Entertainment category

我已经开始了。类别,城市,公司,群组,活动,用户,页面和操作的表格。

我想要做到这样的事情的最好和最快的方式只是建议我一些表现良好并且可以扩展的方式,例如,如果将来任何行动增加,那么可以轻松实施而不会破坏先前的。

非常感谢提前:)

我还计划在搜索之前添加1个表,其中包括字段:名称和类型,名称可以是任何类型,类型将类似于:用户,技能,指定,公司,城市,组

1 个答案:

答案 0 :(得分:0)

您可以通过搜索字符串执行此操作。

  1. 首先在字符串中搜索“in”,“from”和“for”。(需要有空格,以便名称不冲突)
  2. 根据步骤1的结果,将您的字符串拆分为两部分。例如,“来自纽约的罗伯特”将是阵列(“罗伯特”,“纽约”)
  3. 根据您的步骤1和2查找相应的表格,例如,步骤2可以在指定(艺术家)或姓名(罗伯特)中搜索第一个值,第二个值将在位置。
  4. 您需要在其他方案中使用相同的内容。
  5. 在单个阵列中构建所有可能结果的数组以及它的url like group将具有组url,person将具有profile url并且在前端只是循环输出。