关于SOLR文档的问题等等

时间:2010-01-19 17:37:56

标签: java mysql database search solr

网站:分类广告网站(用户可以投放广告,搜索广告等)

我计划使用SOLR进行搜索,然后将结果作为ID nr:s返回,然后使用那些ID nr:s并查询mysql,最后用这些ID显示结果:s。

目前我在MySQL中有大约30个表,每个类别一个。

1-您认为我应该采取与上述不同的方式吗?

2-我应该只使用一个SOLR文档还是多个文档?此外,文档是否与SOLR索引相同?

3-仅使用SOLR并跳过MySQL知道每个表中有很多列会更好吗?就个人而言,我比使用SOLR更善于使用MySQL。

4-假设用户想要搜索特定区域的汽车,在SOLR中如何执行/完成此类查询?例如:q=cars&region=washington可能吗?

你可能认为有很多关于SOLR的信息,但是没有,特别是没有使用PHP与SOLR和SOLR php客户端...也许我会在我学会了这些之后写些东西。 ..或许你们其中一个人可以写点什么!

再次感谢所有帮助...

4 个答案:

答案 0 :(得分:7)

首先,定义:Solr / Lucene文档大致相当于数据库行。索引与数据库表大致相同。

我建议尝试将所有与分类相关的信息存储在Solr中。查询Solr然后数据库效率低下,很可能没必要。

假设您在Solr中有q=cars+region:washington字段,则在特定区域中查询类似于region

Solr wiki有大量的好信息和pretty good basic tutorial。当然这可以随时改进,所以如果您发现任何不清楚的地方,请让Solr团队了解它。

我不能对PHP客户端发表评论,因为我不使用PHP。

答案 1 :(得分:0)

Solr将使用SimpleXml以易于解析的语法返回结果。您还可以使用SolPHP客户端库:http://wiki.apache.org/solr/SolPHP

Solr非常有效率。我建议根据需要在Solr索引中放入尽可能多的数据,以便从Solr中检索所有内容。这可能意味着更少的数据库流量。

如果您安装了示例Solr应用程序(Jetty附带),那么您可以使用管理界面开发Solr查询。结果的URI几乎就是你在PHP中构建的。

从Solr开始时最困难的部分是使solrconfig.xml和schema.xml文件正确无误。我建议从一个非常基本的配置开始,并在每次添加字段时重新启动您的Web应用程序。从整个schema.xml开始可能会令人困惑。

答案 2 :(得分:0)

  
    

2-我应该只使用一个SOLR文档还是多个文档?另外,是文件     与SOLR指数相同?

         

3-仅使用SOLR并跳过MySQL知道我有很多更好     每个表中的列?就个人而言,我比使用SOLR更善于使用MySQL。

  

文档是solr索引的“实例”。考虑到每个solr Core只能构建一个solr索引。核心作为独立的solr Server充当相同的solr insallation。

http://wiki.apache.org/solr/CoreAdmin

Yo可以构建一个索引合并一些表内容和一些其他索引来执行二级搜索...

您会提供有关架构和数据的更多详细信息吗?

答案 3 :(得分:0)

正如其他人所建议的那样,您可以存储和索引您的mysql数据,并可以在solr索引中运行查询,从而无需使用mysql。 您不需要只存储和索引ID并查询和获取ID,然后运行mysql查询以获取针对该ID的其他数据。您可以在solr中存储与id相对应的其他数据。

关于solr PHP客户端,那么您不需要使用,建议直接使用像Solr Web API这样的REST。您可以使用像file_get_contents("http://IP:port/solr/#/core/select?q=query&start=0&rows=100&wt=json")这样的PHP函数,或者如果需要,可以使用curl和PHP。两种方式几乎相同且有效。这将以j wt=json的形式返回json中的数据。然后使用PHP函数json_decode($returned_data)在对象中获取该数据。

如果您需要回答任何问题。