我对Apache Solr进行了一些分析,并且非常适合从各种来源搜索数据。 我面临的问题是如何标准化我的搜索语法并将搜索文本翻译成Solr查询。
我有三种类型的文件/数据库表可供搜索 - 即客户,行业和单位。搜索框中的第一个关键字应该是三个中的任意一个。之后,用户可以定义一组固定标准:
Metrics : 0 or many (ex, exposure, income, revenue, loan_amt etc)
Dimension : 0 or many (Geography, region, etc)
示例:
customer - Returns all customer data from customer core
customer income from Asia - Returns all customer income details who belongs to Asia
customer income revenue from Asia - Returns all customer income and revenue details who belongs to Asia
如何将上述自然语言搜索文本翻译为solr查询? 我可以在Solr中修复我的文本语法吗? 第一个关键字应该是客户/行业/单位, 第二个关键值是一个或多个地区/地理 然后是指标值。
我不是在寻找谷歌搜索,而是在用户知道搜索内容的有限搜索。
答案 0 :(得分:1)
为了不被纳入被认为是NLP最难的NLP的问答区域,可能会尝试定义你的问题的语法,例如Y在Y中的Z,其中X可以是不同的实体,如顾客,Y可以是一些地理定位,Z可以是过滤器。
答案 1 :(得分:1)
严格来说,这似乎不是一个Solr问题。作为第一步,您可能希望根据输入的特定生产规则定义context-free grammar(CFG,类型2语法)。这将为您提供一些可靠的语法规则。基于此,您可以为自然语言输入创建解析器,并将生成的解析树映射到Solr中的关键字搜索。