关于lucene的分词和查询
shadowlin
2008-05-26
我想问下,如果我把一个中文字符传在索引的时候进行了分词,查询的时候也使用同一个分词器.
如何让查询按照最大匹配度去进行? 比如索引里的字符传是"问题说明越详细",分词分成了"问题","说明","越","详细". 我用"如果问题说明越详细,回答也会越准确!"去查询,希望能查询到这个结果,需要怎么做? 刚接触lucene,还很不熟悉. |
|
jiqiumin
2008-05-27
分词插件,有很多网上搜下
|
|
shadowlin
2008-05-27
我已经有分词器了,我的意思是如何用分出来的词去查询,然后查询到一个最匹配的?
|
|
jiqiumin
2008-05-28
....lucene出来结果就是相关度排序
|
|
bulrush
2008-05-28
先分词,用Queryparser.parser(words) 再sercher这个query就可以,默认就是按匹配度排
|
|
edwardpro
2008-05-28
查询时候也要把你输入的先分词的,不然是查不到的
|
|
shadowlin
2008-06-02
可能我还是没表达清楚,我的意思是我用来查询的条件可能比索引里的要多...
比如索引里有"abc"我用"abcd"来查询,我希望能把abc也查出来,这样的话怎么做呢?(假如分词以后abc是abc,abcd是abc和d) |
|
shadowlin
2008-06-02
我现在的做法是把输入的查询条件分词以后用booleanQuery去查询.
有没有别的方法? 另外 qp.setDefaultOperator(QueryParser.OR_OPERATOR); qp.setDefaultOperator(QueryParser.AND_OPERATOR); 这两个是在什么情况下用的?我原来以为是表示把分了的词怎么查询的,但试了下似乎不是啊.. |
|
zhjt_88
2008-06-04
关注中,你问题解决了吗
|
|
wifivein
2008-06-04
我也是分词以后用BooleanQuery,没觉得有什么不好
qp.setDefaultOperator(QueryParser.OR_OPERATOR); qp.setDefaultOperator(QueryParser.AND_OPERATOR); 用来设置默认情况下(空格分开)的关键词逻辑,初始是OR |