Hey,
My question isn't reeeally specific to ES, but maybe you can help me.
I'm building a search engine for a game. In this game, items have sockets.
- items can have from 0 to 6 sockets
- some sockets can be linked
- there are 3 types of sockets (Red, Green, Blue)
- when 3 sockets are linked (for instance), we consider that they're all
linked to each other, not just to the closest one.
My goal is to allow users to search for items with specific colors (with a
degree of incertainty)
The way a user would describe the socket combination like that:
"rrrbb" would be an item with 5 linked sockets, 3 red and 2 blue.
"ggg rb" would have 3 green socket linked and 1 red and 1 blue linked.
Still following?
When I index an item, I order the linked sockets alphabetically and by
group size (group size might not be necessary): "rb ggb" would become "bgg
br".
And I would reorder the user input the same way.
So, searching for an exact combination is super easy and fast(?). I
wouldn't even need to analyze the data, would I?
But I would like these scenarios to work:
"ggg" would find "ggg rb" -> this is easy with just a whitespace analyzer?
But what I'm struggling with would be:
"bg* r b" would match "bgrr r b" -> the way I'm doing things right now, is:
as soon as a group has a , I add * between every subgroup, so I would
search for: bg r b.
It works, but I think it's really inefficient, isn't it?
Do you have an idea on how to index the data (analyzers, as a string or
terms or...) to make this possible an fast?
Thanks a looooot if you read until the end <3
--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.