半自然语言使用Apache Solr进行搜索

时间:2016-03-08 11:50:16

标签: java solr nlp opennlp

我对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中修复我的文本语法吗? 第一个关键字应该是客户/行业/单位, 第二个关键值是一个或多个地区/地理 然后是指标值。

我不是在寻找谷歌搜索,而是在用户知道搜索内容的有限搜索。

2 个答案:

答案 0 :(得分:1)

为了不被纳入被认为是NLP最难的NLP的问答区域,可能会尝试定义你的问题的语法,例如Y在Y中的Z,其中X可以是不同的实体,如顾客,Y可以是一些地理定位,Z可以是过滤器。

答案 1 :(得分:1)

严格来说,这似乎不是一个Solr问题。作为第一步,您可能希望根据输入的特定生产规则定义context-free grammar(CFG,类型2语法)。这将为您提供一些可靠的语法规则。基于此,您可以为自然语言输入创建解析器,并将生成的解析树映射到Solr中的关键字搜索。