我正在研究比较不同搜索平台的性能而不是Twitter的推文。为了我的目的,我收集了一组推文(大约50,000)并将它们保存在一个文本(.txt
)文件中,格式类似于以下内容:
Tweet ID User Tweet Content Tweet Time-stamp
数据如下所示:
31261817690923008 username1 tweet 1 content goes here 1482180069
31132193287839744 username2 tweet 2 content goes here 1274400000
现在,使用Solr 6.3.0,是否可以单独索引每行内容?相反,我应该使用XML还是JSON?或者我是否必须将每一行(推文)存储在不同的文件中?
答案 0 :(得分:1)
您可以使用CSV Update Handler,这会产生每行的单个文档。
要调整解析为您使用的结构,可以使用separator
(TAB?%09)提供字段/列之间使用的分隔符encapsulator
来设置用于的值封装单个字段值(它似乎没有使用任何)和fieldnames
为每列提供正确的字段名称,除非它们位于第一行 - 在这种情况下设置{{1} } to true(并且不提供字段名)。
答案 1 :(得分:1)
假设有两件事:
#1您不希望对数据输入进行大量编码。
#2您的文本文件是TAB或逗号分隔。 如果是这样,您可以轻松将其转换为可通过管理界面添加的XML。
要记住的一些事项:
将您的数据包含在合理大小的<add> ... </add>
块中。理想情况下不是50K。实验一点。
在<doc> ... <doc>
每列需要有自己的字段,如
<field name="id"> ... </field>
<field name="username"> ... </field>
...
所有人都需要唯一身份证。 出于实际目的,如果您可以在电子表格中打开文本文件,在数据之间添加标记列,然后连接这些行,即使50K的劳动强度很小,也相对容易。 两个文档集看起来像:
<add>
<doc>
<field name="id"> ... </field>
<field name="user"> ... </field>
<field name="content"> ... </field>
<field name="time_stamp"> ... </field>
</doc>
<doc>
<field name="id"> ... </field>
<field name="user"> ... </field>
<field name="content"> ... </field>
<field name="time_stamp"> ... </field>
</doc>
</add>