tomcat - Typo3 Solr,如何设置 solr 5.X

标签 tomcat solr typo3

再见!

我们正在尝试设置 Solr 以与 TYPO3 6.2 一起使用,但我们没有取得任何成功。 我们的第一个尝试是使用 TYPO3 提供的“install-solr.sh”脚本来运行 Solr 4.8 和 Tomcat 6。

不幸的是,脚本没有在我们的 (Debian) 服务器上安装 Solr,我无法让它运行。

我们尝试的第二件事是在没有 Tomcat 的情况下安装 Solr (5.x),但我们无法为 TYPO3 配置它。

为 TYPO3 6.2 设置 Solr 的最佳方法是什么,以及如何为 TYPO3 配置它?

亲切的问候!

最佳答案

我也试过,失败了。我得出的结论是 Solr 5.x 与版本 3.0.0 和 3.0.1 中的扩展 solr 不兼容,即使您手动安装它也是如此。 EXT:solr 中的一些配置不再适用于 Solr 5.x。我试图解决这个问题,但它的变化太多了。

我可以确认最新版本的 4.x 分支 (4.10.4) 在手动安装后可以与 EXT:solr 一起正常工作。使用旧版本甚至 4.8 应该不是问题,因为 Solr 服务器未暴露给网络。

要使用 Solr 4.x,只需下载 Solr 存档并将其解压缩到磁盘上的某个位置。这是一个用于启动和停止 Solr 4.x-Server 的简单脚本,您只需要输入路径即可。我不太确定我从哪里得到它,也许它甚至包含在 EXT:solr:

##################################################
# Environment
##################################################

# Adapt those paths
JAVA="/usr/bin/java"
SOLR_DATA_DIR="/path/to/your/project/.../typo3conf/ext/solr/Resources/Solr"
SOLR_CODE_DIR="/path/where/you/extracted/solr/to/..."

SOLR_PID="$SOLR_DATA_DIR/solr.pid"
SOLR_PORT="8983"
SOLR_HOST="127.0.0.1"
SOLR_RUNDIR="$SOLR_CODE_DIR/example"
SOLR_JAR="$SOLR_RUNDIR/start.jar"
SOLR_HOME="$SOLR_DATA_DIR"

RUN_ARGS=("-Dsolr.solr.home=$SOLR_HOME" "-Djetty.port=$SOLR_PORT" "-Djetty.host=$SOLR_HOST" -jar "$SOLR_JAR")

##################################################
# Helper functions
##################################################
usage()
{
    echo "Usage: ${0##*/} {start|stop|status}"
    exit 1
}

running()
{
  local PID=$(cat "$1" 2>/dev/null) || return 1
  kill -0 "$PID" 2>/dev/null
}

##################################################
# Do the action
##################################################
case "$1" in
  start)
    echo "Starting Solr: "

    if start-stop-daemon --verbose --start --pidfile "$SOLR_PID" --make-pidfile --chdir "$SOLR_RUNDIR" --background --exec "$JAVA" -- "${RUN_ARGS[@]}" --daemon
    then
      sleep 2
      if running "$SOLR_PID"
      then
    echo "OK"
      else
    echo "FAILED"
      fi
    fi

    ;;

  stop)
    echo "Stopping Solr: "

    start-stop-daemon --stop --pidfile "$SOLR_PID" --chdir "$SOLR_RUNDIR" --exec "$JAVA" --signal HUP

    TIMEOUT=30
    while running "$SOLR_PID"; do
      sleep 1

      if (( TIMEOUT-- == 0 )); then
    echo "Process is still running after 30 seconds. Wait a bit longer, or stop it manually."
    exit 1
      fi
    done

    rm -f "$SOLR_PID"
    echo OK

    ;;

  status)
    if [ -f "$SOLR_PID" ]
    then
      echo "Solr is running, pid=$(< "$SOLR_PID")"
      exit 0
    fi
    echo "Solr is not running"
    exit 1
    ;;

  *)
    usage

    ;;
esac

如果使用脚本时Solr没有正确启动,尝试手动执行以下命令行,这样你就可以看到堆栈跟踪(手动将变量替换为它们的实际值):

/usr/bin/java -Dsolr.solr.home=$SOLR_HOME -Djetty.port=$SOLR_PORT -Djetty.host=$SOLR_HOST -jar $SOLR_JAR

关于tomcat - Typo3 Solr,如何设置 solr 5.X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32113271/

相关文章:

java - 未找到类异常 X509UsernameRetrieverClassName Tomcat

java - 为什么我需要在 tomcat 应用程序上启用 CORS

search - 如何在 Solr schema.xml 中表示子文档?

spring - Tomcat 服务器遇到 404 原因不明

java - 无法在 tomcat 8 中部署 war 文件

solr - 有没有办法在 Solr 中突出显示拼写检查排序规则?

Linux内存映射文件(已删除)

TYPO3 后端显示图像太大

缺少 TYPO3 管理后端模块

php - pdf 下载的正确 HTTP header