2017-02-08 12 views
0

Я пытаюсь индексировать XML-имеющую 1400 документов данных в следующем формате (каждое «информация» поле начинается и заканчивается является отдельным юридическим лицом документа.индексирования Каждых документы поле внутри XML отдельно в виде отдельного документа

<add> 
<information> 
    <id>a1a</id> 
    <author>abcd</author> 
    <bibliography>a. b. ,c</bibliography> 
    <body>This sample one.</body> 
    <title>Sample one</title> 
</information> 
<information> 
    <id>a2a</id> 
    <author>xyz</author> 
    <bibliography>x. y.x</bibliography> 
    <body>This is sample two</body> 
    <title>Sample Two</title> 
</information> 
</add> 

я использовал командную строку, чтобы зафиксировать файл, используя пост команду Java -Durl = http://localhost:8983/solr/update/extract?literal.id=VR -Dtype = применение/XML -jar post.jar VR.xml

Schema.xml (до объявления поля)

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 

    <field name="bibliography" type="string" indexed="true" stored="true"/> 
    <field name="body" type="text_en" indexed="true" stored="true"/> 

    <field name="sku" type="text_en_splitting_tight" indexed="true" stored="true" omitNorms="true"/> 
    <field name="name" type="text_general" indexed="true" stored="true"/> 
    <field name="manu" type="text_general" indexed="true" stored="true" omitNorms="true"/> 
    <field name="cat" type="string" indexed="true" stored="true" multiValued="true"/> 
    <field name="features" type="text_general" indexed="true" stored="true" multiValued="true"/> 
    <field name="includes" type="text_general" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" /> 

    <field name="weight" type="float" indexed="true" stored="true"/> 
    <field name="price" type="float" indexed="true" stored="true"/> 
    <field name="popularity" type="int" indexed="true" stored="true" /> 
    <field name="inStock" type="boolean" indexed="true" stored="true" /> 

    <field name="store" type="location" indexed="true" stored="true"/> 

    <field name="title" type="text_general" indexed="true" stored="true" multiValued="true"/> 
    <field name="subject" type="text_general" indexed="true" stored="true"/> 
    <field name="description" type="text_general" indexed="true" stored="true"/> 
    <field name="comments" type="text_general" indexed="true" stored="true"/> 
    <field name="author" type="text_general" indexed="true" stored="true"/> 
    <field name="keywords" type="text_general" indexed="true" stored="true"/> 
    <field name="category" type="text_general" indexed="true" stored="true"/> 
    <field name="resourcename" type="text_general" indexed="true" stored="true"/> 
    <field name="url" type="text_general" indexed="true" stored="true"/> 
    <field name="content_type" type="string" indexed="true" stored="true" multiValued="true"/> 
    <field name="last_modified" type="date" indexed="true" stored="true"/> 
    <field name="links" type="string" indexed="true" stored="true" multiValued="true"/> 


    <field name="content" type="text_general" indexed="false" stored="true" multiValued="true"/> 


    <!-- catchall field, containing all other searchable text fields (implemented 
     via copyField further on in this schema --> 
    <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/> 

    <!-- catchall text field that indexes tokens both normally and in reverse for efficient 
     leading wildcard queries. --> 
    <field name="text_rev" type="text_general_rev" indexed="true" stored="false" multiValued="true"/> 

    <!-- non-tokenized version of manufacturer to make it easier to sort or group 
     results by manufacturer. copied from "manu" via copyField --> 
    <field name="manu_exact" type="string" indexed="true" stored="false"/> 

    <field name="payloads" type="payloads" indexed="true" stored="true"/> 



    <dynamicField name="*_i" type="int" indexed="true" stored="true"/> 
    <dynamicField name="*_is" type="int" indexed="true" stored="true" multiValued="true"/> 
    <dynamicField name="*_s" type="string" indexed="true" stored="true" /> 
    <dynamicField name="*_ss" type="string" indexed="true" stored="true" multiValued="true"/> 
    <dynamicField name="*_l" type="long" indexed="true" stored="true"/> 
    <dynamicField name="*_ls" type="long" indexed="true" stored="true" multiValued="true"/> 
    <dynamicField name="*_t" type="text_general" indexed="true" stored="true"/> 
    <dynamicField name="*_txt" type="text_general" indexed="true" stored="true" multiValued="true"/> 
    <dynamicField name="*_en" type="text_en" indexed="true" stored="true" multiValued="true"/> 
    <dynamicField name="*_b" type="boolean" indexed="true" stored="true"/> 
    <dynamicField name="*_bs" type="boolean" indexed="true" stored="true" multiValued="true"/> 
    <dynamicField name="*_f" type="float" indexed="true" stored="true"/> 
    <dynamicField name="*_fs" type="float" indexed="true" stored="true" multiValued="true"/> 
    <dynamicField name="*_d" type="double" indexed="true" stored="true"/> 
    <dynamicField name="*_ds" type="double" indexed="true" stored="true" multiValued="true"/> 

    <!-- Type used to index the lat and lon components for the "location" FieldType --> 
    <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" /> 

    <dynamicField name="*_dt" type="date" indexed="true" stored="true"/> 
    <dynamicField name="*_dts" type="date" indexed="true" stored="true" multiValued="true"/> 
    <dynamicField name="*_p" type="location" indexed="true" stored="true"/> 

    <!-- some trie-coded dynamic fields for faster range queries --> 
    <dynamicField name="*_ti" type="tint" indexed="true" stored="true"/> 
    <dynamicField name="*_tl" type="tlong" indexed="true" stored="true"/> 
    <dynamicField name="*_tf" type="tfloat" indexed="true" stored="true"/> 
    <dynamicField name="*_td" type="tdouble" indexed="true" stored="true"/> 
    <dynamicField name="*_tdt" type="tdate" indexed="true" stored="true"/> 

    <dynamicField name="*_c" type="currency" indexed="true" stored="true"/> 

    <dynamicField name="ignored_*" type="ignored" multiValued="true"/> 
    <dynamicField name="attr_*" type="text_general" indexed="true" stored="true" multiValued="true"/> 

    <dynamicField name="random_*" type="random" /> 

<uniqueKey>id</uniqueKey> 

Итак, здесь я добавил все дополнительные поля, упомянутые в xml, с настройками по умолчанию.

После индексации завершен, и если я ставлю запрос здесь, Ответ дается это

{ "Идентификатор": "VR", "content_type": [ "приложение/XML" ], " content ": [ " \ n \ n \ n \ n \ n \ n \ n \ n \ n a1a \ n abcd \ n ab, c \ n Этот образец один. \ n Пример одного \ n \ n \ n a2a \ п хуг \ п хух \ п Это пример два \ п Sample Два \ п \ п \ п " ], " версия «: 1558754454898999300

réponse ожидается, это:

{ "идентификатор": "ABCD", "content_type": [ "приложение/XML" ], "содержание": [ "\ N \ N \ N \ n \ n \ n \ n \ n \ n a1a \ n abcd \ n a. б. , С \ п Этот образец один \ п Образец один \ N \ N \ п А2А \ N " ],

"_version_": 1558754454898999300 

{ "идентификатор.": "XYZ", "content_type": [ " application/xml " ], " content ": [ " xyz \ n x. уг \ п Это пример два \ п Sample Два \ п \ п \ п « ], » версия «: 1558754454898999301

Позвольте мне знать, где я отсутствует, и предложите требуются congigurations, если таковые имеются требуется дополнительная информация, не стесняйтесь спрашивать.

+0

Что такое ответ, если вы попробуете это HTTP: // локальный: 8983/Solr/collection_name/выберите Q = *% 3A * –

ответ

0

Я думаю, что все индексируется как один документ.

изменение <information></information> теги <doc></doc>

<add> 
<doc> 
    <id>a1a</id> 
    <author>abcd</author> 
    <bibliography>a. b. ,c</bibliography> 
    <body>This sample one.</body> 
    <title>Sample one</title> 
</doc> 
<doc> 
    <id>a2a</id> 
    <author>xyz</author> 
    <bibliography>x. y.x</bibliography> 
    <body>This is sample two</body> 
    <title>Sample Two</title> 
</doc> 
</add> 
+0

К сожалению , все тот же ответ для запроса. Любое другое решение, если у вас есть? –

0

Преобразование вам XML в ниже формат:

<add> 
    <doc> 
    <field name="id">a1a</field> 
    <field name="author">abcd</field> 
    <field name="bibliography">a. b. ,c</field> 
    <field name="body">This sample one.</field> 
    </doc> 

    <doc> 
    <field name="id">a2a</field> 
    <field name="author">xyz</field> 
    <field name="bibliography">x. y. ,z</field> 
    <field name="body">Sample Two.</field> 
    </doc> 
</add> 

Теперь вы можете размещать данные, используя следующую команду:

/opt/solr/bin/post -c collection_name VR.xml 
+0

Извините, все тот же ответ на запрос. Любое другое решение, если у вас есть? –

0

XML, документ в правильном ответе Ашрава:

<add> 
    <doc> 
    <field name="id">a1a</field> 
    <field name="author">abcd</field> 
    <field name="bibliography">a. b. ,c</field> 
    <field name="body">This sample one.</field> 
    </doc> 

    <doc> 
    <field name="id">a2a</field> 
    <field name="author">xyz</field> 
    <field name="bibliography">x. y. ,z</field> 
    <field name="body">Sample Two.</field> 
    </doc> 
</add> 

Ваш пост в ExtractingRequestHandler с literal.id=VR создает/обновляет один документ с idVR.

Просто отправляете как java -jar post.jar VR.xml даст вам следующие результаты:

"docs": [ 
    { 
    "id": "a1a", 
    "author": "abcd", 
    "author_s": "abcd", 
    "bibliography": "a. b. ,c", 
    "body": "This sample one.", 
    "_version_": 1558910648654495700 
    }, 
    { 
    "id": "a2a", 
    "author": "xyz", 
    "author_s": "xyz", 
    "bibliography": "x. y. ,z", 
    "body": "Sample Two.", 
    "_version_": 1558910648656593000 
    } 
+0

Спасибо, так много ... Это хорошо работает. С новой командой. –

+0

большой !!. Вы можете принять как ответ. –