我有 700.000 个街道名称、8111 个城市名称和 80333 个地区邮政编码。我想在 solr 中索引所有这些信息。用户希望通过 ajax 自动完成表单搜索此信息。我已经用很少的数据证明了这一点,并且 ajax 自动完成表单的行为是可以的。

 <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  </analyzer>
</fieldType>

将所有数据加载到solr时出现问题

  • 我应该如何将信息加载到 solr 服务器(我在一个 grails 应用程序中,我需要加载具有信息的实例,而无需数据输入处理程序)今天我花了很多时间来做这件事,最后 grails 控制台崩溃了:( --> 我应该使用 grails 脚本而不是执行服务并使用 grails 控制台执行它吗?
  • 或者我应该使用数据输入处理程序来更快地加载它?我可以使用数据输入处理程序连接来自不同表的不同列的字符串值吗?

(每个都有不同的文档是可以的(700.000 + 8111 + 80.333 个文档)??)

谢谢你的时间

有帮助吗?

解决方案

我假设您的城市、街道名称和邮政编码应该单独自动完成。在这种情况下,您将使用单独的 索尔核心 为每一个。

或者我应该使用数据输入处理程序来更快地加载它?

DIH 会非常快,只要这些信息不经常更改,就可以这样做。

我可以使用数据输入处理程序连接来自不同表的不同列的字符串值吗?

是的;在 data-config.xml 你给出具体的 SQL 查询并可以使用数据库的本机串联(例如 || 在甲骨文中)。

其他提示

认真,写一个shell脚本并使用curl将更新发送到solr。

你试图在墙上拍摄罐子,炮座安装在漂浮在游泳池的船上。您不需要大炮或船舶或游泳池。只需用气枪站在那里,然后将更新逐一弹出,直到完成。

对于使用示例SOLR更新的examlple shell脚本,从您附近的镜子下载apache-solr-3.5.0.tgz或apache-solr-3.5.0.zip。在 http://lucene.apache.org/solr/downloads.html

解压缩存档,进入示例目录并按照以下说明进行操作 http://lucene.apache.org/solr/tutorial.html

如果您在UNIX上,只需使用post.sh。

顺便说一下,请检查您在服务器上安装的Solr版本。如果它不是3.50那么你为什么要在这里有较新版本的旧版本,现在?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top