搜索词是“今天是天气很好的周六”
sql server全文索引有没对这个搜索语句/词 进行切词的 ?? 如果没有,有别方法吗?
sqlserver全文检索是比较傻瓜化,没有想得那么智能,可以用Lucene.Net(创建索引)+盘古分词来实现你要的功能
如果用solr的话 搜索词是“今天是天气很好的周六” 是不是也要用盘古分词 先分词 再扔到solr找内容??
@koi:就是这个意思, solr这个没用过,不知道有没有.net的版本
@秋壶冰月: 你说的.net版本是不是 处理和建立索引的服务是.net版本,比如Lucene.Net?
@koi: Lucene.Net是移植Java的Lucene,solr是在Lucene之后的,不知道没有.net的版本, Lucene.Net能满足你的要求
@秋壶冰月: Lucene.Net有没提供相关度高低的排序的,?有的话哪里有讲解的吗?
@koi: 可以在创建索引的时候,设置权重
@秋壶冰月: 如果我还有分类搜索的话,还适合用luncence吗? 加上分类的搜索,分类的那个字段不用索引吧,?因为我要全部匹配的
@koi: 如果你创建的索引有分类信息,就不用重新创建索引了,可以通过判断进行要不要进行分词
@秋壶冰月: 可以创建索引但是不分词吗?比如一条信息内容是 “今天天气还是不错的” 属于 “天气”分类,把这两个当为一条记录存进两个字段,现在我对信息内容索引也要分词,然后对天气分类进行索引,但是不分词可以吗?还是说分类那个不用索引也是可以的,查找速度不慢
@koi: 不用索引,也行
@秋壶冰月: 我搜索的词“今天天气很好” 用盘古分词后,搜索内容想只要符合 分词的其中一项 (or) 就可以了怎么用的啊? 像下面这样好像是and操作 全部满足分出来的词才搜的出结果
PhraseQuery query = new PhraseQuery();
foreach (string word in CommonHelper.SplitWord(kw))
{
query.Add(new Term("body", word));
}
searcher.Search(query, null, collector);
@koi: 不是呀!只要符合一个就能查询出来呀!
@秋壶冰月: 上面的代码默认是and操作的,我想用or。。 那假如说上面是or ,我想用and 全部满足时采用的话 怎么改的?
@秋壶冰月: 我的三个句子有 1:“关于SQLSERVER的全文目录跟全文索引的区别”
2:“全文索引--海量数据模糊查询” 3:“sqlserver-全文索引多表查询效率问题”
根据 词 “全文索引sqlserver”去搜索 只能搜出1:3