在Drupal7上使用ApacheSolr为搜索API配置DDEV
来自《纽约时报》的@DamienMcKenna 使用D7站点创建Solr实例时遇到问题。我将conf文件复制到~/.ddev/solr/conf,但是当solr启动时,没有创建默认实例。我运行了在Drupal7上使用ApacheSolr为搜索API配置DDEV,solr,drupal-7,ddev,Solr,Drupal 7,Ddev,来自《纽约时报》的@DamienMcKenna 使用D7站点创建Solr实例时遇到问题。我将conf文件复制到~/.ddev/solr/conf,但是当solr启动时,没有创建默认实例。我运行了ddev stop--remove data--omit snapshot并重新创建了该实例,但该实例仍然不存在。当我转到Solr UI检查系统时,它会显示“没有可用的内核”,当我尝试创建一个名为“dev”的系统时,它会显示: 创建SolrCore“dev”时出错:无法创建核心[dev],原因是:在类路径
ddev stop--remove data--omit snapshot
并重新创建了该实例,但该实例仍然不存在。当我转到Solr UI检查系统时,它会显示“没有可用的内核”,当我尝试创建一个名为“dev”的系统时,它会显示:
创建SolrCore“dev”时出错:无法创建核心[dev],原因是:在类路径或“/opt/solr/server/solr/dev”中找不到资源“solrconfig.xml”
我使用DDEV版本1.11.0中的示例docker-compose-solr.yaml文件成功地完成了Drupal7项目
solr:6.6
sites/all/modules/contrib/search\u api\u solr/solr conf/6.x/*.
复制到.ddev/solr/conf
文件夹中
search\u api\u override
模块
settings.local.php
中添加以下内容:
//仅适用于ddev。
$conf['search_api_override_mode']='load';
$conf['search\u api\u override\u servers'['content']=array(
“名称”=>“DDEV:Solr服务器”,
“选项”=>数组(
“主机”=>“solr”,
“端口”=>“8983”,
'路径'=>'/solr/dev',
“http_用户”=>“”,
“http_pass'=>”,
“摘录”=>0,
“检索_数据”=>1,
“突出显示_数据”=>0,
“http_方法”=>“自动”,
),
);
还有,ymmv。最好只覆盖单独需要的值…la:
$conf['search\u api\u override\u servers']['content']['options']['host']='solr';
$conf['search\u api\u override\u servers']['content']['options']['port']='8983';
$conf['search\u api\u override\u servers']['content']['options']['host']='/solr/dev';
您可能需要修改'content'
数组索引,以匹配您在Drupal 7中配置为Solr索引机器名的任何内容
ddev Start
启动ddev
sites/default/settings.local.php
中,而不是人们认为的逻辑位置(sites/default/settings.ddev.php
),这样就不会干扰ddev自己自动生成后一个文件
如果DDEV在settings.DDEV.php
中自动实现这一点会很酷,类似于DB服务设置的工作方式,但目前还没有这种集成级别,而且Drupal 7可能永远也不会有这种集成级别。首先,因为您需要一个额外的模块(search_api_override),该模块可能存在,也可能不存在,其次,因为用户可以根据自己的需要命名Solr服务器,所以很难实现自动化。例如,$conf['search\u api\u override\u servers']['content']
可以是类似于:$conf['search\u api\u override\u servers']['foo']