elasticsearch 基于多模式关系数据库的全文搜索,elasticsearch,solr,full-text-search,elasticsearch,Solr,Full Text Search" /> elasticsearch 基于多模式关系数据库的全文搜索,elasticsearch,solr,full-text-search,elasticsearch,Solr,Full Text Search" />

elasticsearch 基于多模式关系数据库的全文搜索

elasticsearch 基于多模式关系数据库的全文搜索,elasticsearch,solr,full-text-search,elasticsearch,Solr,Full Text Search,警告:这里是Solr新手 我有一个具有多个模式的PostgreSQL数据库。每个模式包含几个表。这些模式通常在表计数上有所不同,并且这些表也不一定有太多的共同点 关于尺寸: 我总共会有几十到几百个模式 每个模式可以包含约10个表 每个表包含数万行X数百列 我想对数据库模式中的数据进行全文搜索。因此,我希望能够识别与搜索词匹配的模式、表和列 到目前为止,我自己在考虑的是几个SOLR选项,我也很乐意为ES解决方案提供建议: 一,。创建一个多核,其中每个核表示DB模式中的表 这将很好地重用DB模式,但

警告:这里是Solr新手

我有一个具有多个模式的PostgreSQL数据库。每个模式包含几个表。这些模式通常在表计数上有所不同,并且这些表也不一定有太多的共同点

关于尺寸:

我总共会有几十到几百个模式 每个模式可以包含约10个表 每个表包含数万行X数百列 我想对数据库模式中的数据进行全文搜索。因此,我希望能够识别与搜索词匹配的模式、表和列

到目前为止,我自己在考虑的是几个SOLR选项,我也很乐意为ES解决方案提供建议:

一,。创建一个多核,其中每个核表示DB模式中的表

这将很好地重用DB模式,但最终我将拥有数千个我认为是误用的核心

二,。调整索引,使其覆盖所有可能的值

我在考虑超级通用Solr模式,它基本上向下导航到表中的单个单元格。类似于:

<fields>
  <field name="schema" ... /> 
  <field name="table" ... />
  <field name="column"  ... />
  <field name="row" ... />
  <field name="value"  ... />
</fields>
在这种情况下,我觉得我可能有点误用了整个概念,因为值必须是某种通用类型的字符串?已经闻起来了:

此外,该ID将需要组成,但这我明白

如果您对问题有任何见解或对文档的哪一部分有任何建议,我们将不胜感激。

请回复:


@jeorfevre:我的想法是搜索像耶路撒冷这样的词,然后响应需要将我导航到schema->table->column,其中存在这个词。能够识别偶数行是一个加号,但不是严格要求

我建议您使用单词索引,而不是行/行全文

<fields>
  <field name="schema" ... /> 
  <field name="table" ... />
  <field name="column"  ... />
  <field name="row" ... />
  <field name="myword"  ... />
</fields>
这将是一种比solr中对X行进行全文搜索更好的方法。全文是solr中最慢的选项。这种搜索是最好的选择

您键入耶路撒冷,它将返回与之匹配的所有结果。
你觉得怎么样。比fulltextsearch更好的是,它只会直接命中1个单词。

实际上,值的类型字符串应该是正确的ES<5.x现在text in>5.x,重要的是映射的整个概念,在映射中,您可以指示如何分析、标记、索引和搜索值以及可能的其他内容,请参见此链接:至于Solr,不幸的是,我没有足够的经验来给出完整泛型选项2的指针,根本没有性能,这将使您的solr核心索引过重,是所有数据大小的1.5倍,这将导致运行缓慢。为了帮助你,你能给我们举三个搜索的例子吗?@jeorfevre:我的想法是搜索像耶路撒冷这样的词,然后响应需要引导我到这个词所在的schema->table->column。能够识别偶数行是一个额外的,但不是严格要求。我应该已经提到,细胞可能需要全文搜索,因为一个共同的列是一些描述,可能包含搜索关键字在某个中间…就像cell包含的一样,我出生在耶路撒冷。我理解,但是使用这个拆分单词并在solr中编写独立元组的实现,您将有更好的性能。此外,通过此实现,您将轻松找到50次x,并轻松提出一些接近此搜索的结果。去实现它吧。全文搜索没有它的功能。最好使用与您的使用相匹配的实现。我会尝试一下。谢谢你的建议!一旦尝试,将接受: