gpt4 book ai didi

mysql - 使用lucene配置mysql时无法按某些列搜索

转载 作者:行者123 更新时间:2023-11-29 14:47:23 27 4
gpt4 key购买 nike

我的数据库有三列,我将 lucene 配置为索引。但是,我只能搜索其中之一。完整描述如下:

我按照以下说明配置 solr 以使用 mysql 数据:

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

我下载了jdbc驱动程序,将其放入/example/lib中,并在/example/conf/solrconfig.xml中创建了一个新的requestHandler

我的数据库表items有三列:

  1. id:int、主键、自动增量键

  2. 名称:varchar(256)

  3. 描述: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>

接下来,我编辑/example/solr/conf 中的 schema.xml 以使其了解新名称:

<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">

我必须取消注释先前存在于该文件中的 idname 描述,因为它们与我的描述冲突。

接下来,我成功导入了数据库(大约 100K 行)。

最后,我可以成功地按 name 进行搜索,但无法按 descriptionid 进行搜索。我不明白为什么会这样。任何帮助或指示将不胜感激。

最佳答案

名称字段可能是要搜索的默认字段名称。因此,请确保您在查询中引用字段名称。

要在 description 字段中搜索,请使用查询:description:queryString
要在所有字段中搜索,请使用查询:id:queryString OR name:queryString OR description:queryString

更多信息请查看http://wiki.apache.org/solr/SolrRelevancyFAQ

关于mysql - 使用lucene配置mysql时无法按某些列搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6643062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com