关于Xapian初学者的几个问题
2011-08-04 11:08
441 查看
问题1:
我看到Xapian::Document有一个方法
void add_value (Xapian::valueno valueno, const std::string &value)
这个方法的作用是什么呢?Xapian中的文件与terms关键词是相关的,那这个又是什么关系?
解答1:
values是数据额外的信息部分,在一些情况下可以用来对搜索过程进行搜索的更正。例如,他们可以用于对一些文件添加额外的字段,或者对结果用一种不同的方式进行排序,或者对从一个单一网站得到的结果进行分解和筛选。
问题2:
add_posting 方法将会在文件中添加一个关键字
void add_posting (const std::string &tname, Xapian::termpos tpos, Xapian::termcount wdfinc=1)
我注意到 Xapian::TermGenerator有如下的方法
void index_text (const Xapian::Utf8Iterator &itor, Xapian::termcount weight=1, const std::string &prefix="")
这两个方法和区别和联系在哪?
解答2:
TermGenerator是一个类,该类用于分析提供给它的文本,把文本拆开为单独的单词,同时采用合适的填充操作符。它会产生与QueryParser类提供的相兼容的关键字。
Document::add_posting()和Document::add_term()仅对一个文件添加一个关键字。该关键字被添加到文档中时也就被提供给了函数;没有执行填充,同时关键词也没有为一个单词分解为不同的关键词。这些功能都是通过TermGenerator调用来给文档添加它产生的关键词。
通常情况下,如果你有一段文本检索,TermGenerator应该被使用,同时你也希望产生查询条件使用QueryParse类来搜索文本。如果你需要添加特定的关键字,那就要使用add_term()或者add_posting()。要么是因为你需要实现你自己的关键字产生策略,要么是因为你在数据库中存储了额外的信息,例如实现一些布尔过滤器。
相关文章推荐
- 编程初学者最常问到的几个关于编程学习的问题
- 关于运行地址和加载地址的几个很多初学者模糊不清的问题我在这里总结一下
- 问几个关于在Nokia上的jsr82蓝牙的问题,希望接触过的朋友指点一下.
- 关于xloader和uboot的几个初级问题
- 初学者最常问的几个问题
- 关于JAVA序列化的几个问题
- ArcSDE初学者需要弄清楚的几个问题
- 关于sizeof的几个问题
- 关于几个基础c语言问题的初级做法
- 关于String的几个有意思的小问题
- 关于robotium的工作原理的几个问题
- 关于vs2010(C++ 工程)的异常问题(this is not a valid c/c++ file .CPP)的解决(C++ 初学者)
- java中关于一个汉字等于几个字节的问题
- GIS开发随笔(2)——关于建立GIS数据库的几个问题
- Windows phone 7中关于Zune软件使用几个问题
- iOS开发:关于加入开发者计划的几个问题
- Java中父类和子类关于构造方法和私有属性的几个问题
- 面试中可能会被问到的几个关于“委托”的问题
- 关于利用iometer测试存储性能的几个注意点及问题
- 关于KCF的几个问题个人理解