格式良好的查询建议

时间:2013-08-02 14:07:55

标签: data-structures indexing redis elasticsearch

我正在开发一个自动完成功能,我打算在其中显示如下的查询建议:

住在{City_name}的学生[City_name可以包含城市列表中的值]

example_type 1:

  

住在新...的学生

[以下查询建议应弹出]:

  

住在 纽约 的学生   住在 New的学生   泽西

(查找不同的实体[这里是城市,体育(例如:“打篮球的学生”等)。)

example_type 2:

  

住在纽约并且玩耍的学生......

[以下查询建议应弹出]:

  

住在纽约的学生 篮球
  学生们   住在纽约 棒球
   等。

我尝试使用ElasticSearch构建实体索引的基本自动完成功能,这是一个gisted here。 (在我的例子中,使用river-plugin转储子/实体索引。)我天真地检查了嵌套类型和父/子关系,但无法确切地确定它是否适合我的要求。

我不确定如何索引这些(父)短语 子索引,用于启用自动完成搜索,并通过查询/搜索单个索引生成可能的建议树。

如果能得到一些帮助来解决这类问题,那就太好了。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

我会对短语进行索引,例如:

live in New york
live in New Jersey
play basketball
play baseball

然后在客户端做一些工作,弄清楚你已经在查询中开始了一个新的部分,然后只将新部分中的字母发送给ES进行预先完成。

这将需要前端的一些工作,但我可以看到工作。另一种选择是为typeahead的查询短语索引每个可能的变体,但我非常怀疑它是否可行。