我应该如何在ElasticSearch中索引我的数据来解决这种情况?

时间:2013-03-29 03:36:06

标签: indexing full-text-search elasticsearch tire

我正在为游戏(流亡之路)构建搜索引擎。在这个游戏中,物品有插座。

  • 项目可以包含0到6个套接字
  • 某些套接字可以链接
  • 有3种类型的插座(红色,绿色,蓝色)
  • 当3个套接字被链接(例如)时,我们认为它们都是相互链接的,而不仅仅是最接近的套接字。

具有5个链接套接字和1个孤独第六个套接字的项目示例。

我的目标是允许用户搜索具有特定套接字颜色的项目以及与ElasticSearch的链接。

用户可以像这样描述套接字组合:

“RRRBB”将是一个包含5个链接套接字的项目,3个红色和2个蓝色。 “GGG RB”将连接3个绿色插座,1个红色和1个蓝色连接。

仍在关注?

当我索引一个项目时,我按字母顺序和按组大小(可能不需要组大小)来命令链接的套接字:“RB GGB”将变为“BGG RB”。

在进行搜索之前,我会以相同的方式重新排序用户输入。

因此,搜索精确组合非常简单快捷(?)。我甚至不需要分析数据,是吗?

但我希望这些方案能够发挥作用:

“ggg”会找到“ggg rb” - >只用一个空白分析仪就可以轻松实现这个目标吗?

但我正在努力的是:<​​/ p>

“brr * r b”将匹配“bgrr r b” - &gt;我现在正在做的事情:一旦一个组有一个*,我在每个子组之间添加*,所以我会搜索: b g * r b。 它有效,但我觉得它效率很低,对吧? (如果第一个和最后一个字母是B或R,即使是小的优化,例如删除第一个和最后一个*)。

您是否知道如何将数据(分析器,字符串或术语或......)编入索引以使其成为可能且快速的?

结束。

0 个答案:

没有答案