基本上我有一个数组,我需要对其执行部分文本搜索(所有元素都是英文字符串)。该数组可以包含大约 1000 个元素,我需要能够(有效地)在每个元素中搜索一个字符串。
我唯一的选择是对数组进行完整循环吗?针对 .match() 运行每个字符串?或者会有更好的选择吗?
我的一个想法是将 1000 个元素的数组拆分为大约 100 个的 block ,然后 .join.match() 该部分。这样,如果找到一个元素,我们可以查看它,如果没有,我们可以移动到下一个 block 。显然需要稍微调整 block 大小,但这会提供可行的解决方案吗?
最佳答案
您可以尝试使用 inverted index . Here's a nice implementation in Javascript ,非常符合 Lucene 风格。虽然我想知道仅 1000 个元素是否值得,但我想这也取决于每个元素有多长。
关于Javascript 部分搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145108/