r******r 发帖数: 700 | 1 For example, "love * price", 其中的 * 代表一个或多个单词,相当于 RE 中的
star 字符, 因此这个搜索串可以 match:
love the price
love its low price
love its really low price
etc.
像这种搜索,如何实现,如何建立索引? | d****o 发帖数: 1055 | 2 对于你给的例子,可以做一个trie这样的结构这样所有以love开始的query就可以找到
然后,对于所有的以love开始的query,再看是否match “* price”这个RE。
当然,为了后面的快一些,也可以建立一个反向的trie,索引是从后往前,比如可以找
到所有以price结尾的query。这样反向trie和正向trie的交集就是了。
【在 r******r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : For example, "love * price", 其中的 * 代表一个或多个单词,相当于 RE 中的 : star 字符, 因此这个搜索串可以 match: : love the price : love its low price : love its really low price : etc. : 像这种搜索,如何实现,如何建立索引?
| r******r 发帖数: 700 | 3 两个 trie, 找交集,好像是一种思路?
但是在 apache lucene 中,可以大规模的这样建立 trie 这种结构, 以 index 大规模
数据集吗? 不是很了解这一块。
【在 d****o 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 对于你给的例子,可以做一个trie这样的结构这样所有以love开始的query就可以找到 : 然后,对于所有的以love开始的query,再看是否match “* price”这个RE。 : 当然,为了后面的快一些,也可以建立一个反向的trie,索引是从后往前,比如可以找 : 到所有以price结尾的query。这样反向trie和正向trie的交集就是了。
| w****x 发帖数: 2483 | 4
是不是可以建立reverse indexing, 找出love 和 price所有的交集取love的位置小于
price的集合中的最频繁的字符串
【在 r******r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : For example, "love * price", 其中的 * 代表一个或多个单词,相当于 RE 中的 : star 字符, 因此这个搜索串可以 match: : love the price : love its low price : love its really low price : etc. : 像这种搜索,如何实现,如何建立索引?
| r******r 发帖数: 700 | 5 能详细说说嘛。不是很明白。reverse indexing, 是类似数据库里面的那种概念吗
【在 w****x 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 是不是可以建立reverse indexing, 找出love 和 price所有的交集取love的位置小于 : price的集合中的最频繁的字符串
|
|