首页 文章

使用Solr索引/搜索txt文件内容

提问于
浏览
1

我在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?或者我是否必须将每一行(推文)存储在不同的文件中?

2 回答

  • 1

    您可以使用CSV Update Handler,这将为每行生成一个文档 .

    要调整解析为您使用的结构,可以使用 separator (TAB?%09)来提供字段/列之间使用的分隔符, encapsulator 设置用于封装单个字段值的值(它没有使用't seem you'已使用any)和 fieldnames 为每列提供正确的字段名称,除非它们在第一行 - 在这种情况下将 header 设置为true(并且不提供字段名) .

  • 1

    假设有两件事:

    #1您不希望对数据输入进行大量编码 .

    #2您的文本文件是TAB或逗号分隔 . 如果是这样,您可以轻松地将其转换为可以通过Admin界面添加的XML .

    要记住以下几点:

    将您的数据包含在合理大小的 <add> ... </add> 块中 . 理想情况下不是50K . 实验一点 .

    <doc> ... <doc> 中包含您案例中的每个条目行

    每列需要有自己的字段,如下所示

    <field name="id"> ... </field>
    <field name="username"> ... </field>
    ...
    

    都需要唯一的ID . 出于实际目的,如果您可以在电子表格中打开文本文件,在数据之间添加标记列,然后连接这些行,即使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>
    

相关问题