我们正在使用带有rails的elasticsearch使用retire gem。目前,我们索引了许多字段(30 +),其中只有6个是当前全文搜索(用户名,用户电子邮件,用户标题等)。
我们想要向所有可追溯的领域迈进。因此,不是只有可搜索的6个主要字段,而是所有30个(可能更多)都是可搜索的。通过搜索,我的意思是完全匹配,前缀,模糊匹配和子串匹配。
我们正在考虑两种策略:
1)使用正确的分析仪和标记器(已经找到该部分)单独索引每个字段,以满足所需的可搜索性要求。
2)创建所有其他字段的索引文本blob并将该blob作为整体索引。
我很好奇上述两种解决方案的权衡取舍。我们正在寻找:
1)体面写作性能。我们的对象经常更改(这是具有配置文件的可搜索用户的索引)。
2)随着时间的推移,很容易向索引添加新字段。
3)当然,阅读表现。