浏览 1095 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-03-22 关键字: lucene 中文分词 搜索
我现在用的中文分词是可以进行中文分词的,比如:软件图书,会分成<软件> <图书>两个词,但是在搜索时有以下问题:
当输入<软件图书>进行搜索,中间没有空格,结果为0,分词也分成了<软件 图书>了,但是生成的Lucene语句是这样的 IndexSearch:[263]:booleanQuery=+(title:"软件 图书") IndexSearch:[191]:Can't find the result by AND, now begin search by OR. // 因为 AND 搜索不到,我再进行 OR 的搜索 IndexSearch:[263]:booleanQuery=+(title:"软件 图书") IndexSearch:[203]:Hits...0 当输入<软件 图书>进行搜索,中间有空格,就有结果,分词也是分成了<软件 图书>了,但是生成的Lucene语句是这样的 IndexSearch:[263]:booleanQuery=+(+(title:软件) +(title:图书)) IndexSearch:[203]:Hits...26 是什么问题呢? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-03-22
这个是短语查询的问题。QueryParser对连接在一起的词语认为是你要搜索“软件图书”连续在一起的doc(当然,如果对“的”做了noise处理的,短语查询也可以查出“软件的图书”的doc),但是不能检索出“软件大话图书”的doc。
这个是做中文分词及其组件很容易错误的地方。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-23
我的分词算法可以将
<软件图书>或<软件 图书> 切分成 <软件>和<图书>, 于是我希望在搜索时无论输入 <软件图书>或<软件 图书> 都可以搜索到 <软件>和<图书> 相关的doc 但是目前不能,为何? |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-23
把“软件图书”的上下文句子给出来
以及分词算法对这个句子的分词按照分词顺序也给出来 这样才能诊断 |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-24
我也发现有这个问题,“软件图书”和“软件 图书”的分词都是软件和图书,但是搜索结果却是不一样。我的解决方法暂时是先用TokenStream把用户输入的关键词先切词,再放入QueryParser。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-03-26
概念的问题:
分词算法是用于将语句分词(包括转换、过滤、提取等操作); 查询语句表达式:用于实际的搜索过程; QueryParser使用分析器的用途是对查询语句表达式进行分词操作(其实主要作用不是分词,而是转换或者过滤等操作,以便与检索过程一致)。 举例: 查询语句表达式为: "软件的图书 AND 工程的图书" 经过分析器后表达式变为:"软件 图书 AND 工程 图书" |
|
| 返回顶楼 | |






