警告: Solr新手在这里
我有一个具有多个架构的PostgreSQL数据库。每个模式包含几个表。模式通常在表计数方面有所不同,并且表也不一定有太多共同之处。
关于尺寸:
我想在整个数据库模式的数据中进行全文搜索。结果,我希望能够识别与搜索词匹配的架构,表和列。
到目前为止,我自己一直在考虑的SOLR选项很少(我也很乐意提供有关ES解决方案的建议):
1.创建一个多核,其中每个核代表数据库架构中的表
这将很好地重用数据库模式,但最终我将拥有数千个我认为滥用的内核。
2.整理索引,使其涵盖所有可能的值
我在考虑 super 通用的Solr模式,该模式基本上可以导航到表中的单个单元格。类似于:
<fields>
<field name="schema" ... />
<field name="table" ... />
<field name="column" ... />
<field name="row" ... />
<field name="value" ... />
</fields>
在这种情况下,我觉得我可能会误用整个概念,因为值必须是某种通用类型(字符串?),它已经散发出来了:)
此外,还需要组成ID,但是我了解should be possible。
对于问题或建议的任何见解,将重点关注文档的哪一部分。
最佳答案
随着回应:
@jeorfevre: the idea is I'll search for a word (like "Jerusalem") and the response needs to navigate me to the schema -> table -> column where this term exists. Being able to identify even row is a plus but not strictly required.
我建议您使用单词索引而不是行/行全文。
<fields>
<field name="schema" ... />
<field name="table" ... />
<field name="column" ... />
<field name="row" ... />
<field name="myword" ... />
</fields>
这将比在solr中对X行进行全文本搜索要好得多。全文是solr中最慢的选项。这种搜索是最好的选择。
您键入“耶路撒冷”,它将返回所有匹配的结果。
你对那个怎么想的。比fulltextsearch好,它只会直接打1个单词。
关于elasticsearch - 在具有多个模式的关系数据库上进行全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44398865/