Не удается выполнить поиск по определенным столбцам при настройке MySQL с Lucene - PullRequest
0 голосов
/ 10 июля 2011

В моей базе данных есть три столбца, которые я настроил для индексации lucene. Тем не менее, я могу искать только по одному из них. Полное описание следующее:

Я следую этим инструкциям, чтобы настроить solr для использования данных mysql:

http://digitalpbk.com/apachesolr/apache-solr-mysql-sample-data-config

Я скачал драйвер jdbc, поместил его в / example / lib и создал новый requestHandler в /example/conf/solrconfig.xml.

Моя таблица базы данных items имеет три столбца:

  1. id: int, первичный, автоинкрементный ключ

  2. name: varchar (256)

  3. description: varchar (511)

Итак, я создаю следующий data-config.xml:

<dataConfig>
    <dataSource type="JdbcDataSource"
                    driver="com.mysql.jdbc.Driver"
                    url="jdbc:mysql://SERVER/DATABASE"
                    user="USERNAME" 
                    password="PASSWORD"/>
        <document name="content">
            <entity name="node" query="select id, name, description from items">
                <field column="id"         name="id" />
                <field column="name"       name="name" />
                <field column="description" name="description" />
            </entity>
        </document>
</dataConfig>

Затем я редактирую schema.xml в / example / solr / conf, чтобы сообщить ему о новых именах:

<field name="id"          type="string" indexed="true" stored="true"> 
<field name="name"        type="string" indexed="true" stored="true"> 
<field name="description" type="string" indexed="true" stored="true"> 

Мне пришлось раскомментировать описания id и name, которые присутствовали в этом файле ранее, поскольку они конфликтовали с моими описаниями.

Затем я успешно импортировал базу данных (около 100 тыс. Строк).

В конце всего этого я могу успешно выполнить поиск по name, но я не могу выполнить поиск по description или id. Я не понимаю, почему это должно быть так. Любая помощь или указатели будут оценены.

1 Ответ

1 голос
/ 12 июля 2011

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

Для поиска в description поле используйте запрос: description:queryString
Для поиска во всех полях используйте запрос: id:queryString OR name:queryString OR description:queryString

Для получения дополнительной информации, пожалуйста, проверьте http://wiki.apache.org/solr/SolrRelevancyFAQ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...