请大家帮我看个lucene的问题

zhulei0429 2008-06-05 10:54:48
一个查询问题郁闷好长时间了


//建立索引
IndexWriter iw = new IndexWriter("index", new StandardAnalyzer(), true);

Document doc = new Document();
doc.add(new Field("title", "Lucene创建索引示例", Field.Store.YES, Field.Index.TOKENIZED));
doc.add(new Field("author", "chenlb", Field.Store.YES, Field.Index.NO));
doc.add(new Field("date", "2008-03-08", Field.Store.YES, Field.Index.NO));
doc.add(new Field("content", "Lucene索引的内容在这里,这些内容不被存储.", Field.Store.YES, Field.Index.TOKENIZED);

iw.addDocument(doc);

//搜索1(可以查到)
IndexSearcher searcher = new IndexSearcher("index");
QueryParser parser = new QueryParser("content", new StandardAnalyzer());
Query q = parser.parse("索引");
Hits hits = searcher.search(q);


//搜索2
IndexSearcher searcher = new IndexSearcher("index");
BooleanQuery query = new BooleanQuery();

//查不到
query.add(new TermQuery(new Term("content","索引")),BooleanClause.Occur.MUST);

//查的到
query.add(new TermQuery(new Term("content","引")),BooleanClause.Occur.MUST);
query.add(new TermQuery(new Term("content","索")),BooleanClause.Occur.MUST);

Hits hits = searcher.search(query);


请问下为什么query.add(new TermQuery(new Term("content","索引")),BooleanClause.Occur.MUST);这样查的时候查不到记录
当把
doc.add(new Field("content", content, Field.Store.YES, Field.Index.TOKENIZED);//分词
改为
doc.add(new Field("content", content, Field.Store.YES, Field.Index.UN_TOKENIZED));//不分词
的时候我怎么都查不到记录我已经晕了请大家帮帮忙
...全文
80 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoyongling721 2008-06-06
  • 打赏
  • 举报
回复
不谢 呵呵
ljm3256748 2008-06-06
  • 打赏
  • 举报
回复
来学下,怎么分词
minbing 2008-06-05
  • 打赏
  • 举报
回复
lucene就稍微看了下,不懂
zhulei0429 2008-06-05
  • 打赏
  • 举报
回复
谢谢2楼的解决了哈哈
zhulei0429 2008-06-05
  • 打赏
  • 举报
回复
比如:北京 天津 上海
我查"北"就可以查到
可是我查"北京"就不行了
zhaoyongling721 2008-06-05
  • 打赏
  • 举报
回复
这是中文分词搜索 拆分
http://lucene.org.cn/read.php?tid=2868看看这个可以

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧