2012-07-12 103 views
0

我使用Drupal Apache Solr进行搜索。在这里我找到了一个synonym.text文件,你可以在其中为你想要的单词手动添加同义词。在solr中包含同义词而不使用synonyms同义词.txt

但是,正如我想的那样,很难为每个单词手动包含同义词,因为我的应用程序有大量数据。

我想达到的目标是按照我的搜索结果:

当用户将用于ALLU到位土豆的搜索,我们将会显示土豆当成第一个结果。

另一个例子:当用户搜索'原始苹果'时,我们将显示'苹果'作为第一条记录,因为'原始苹果'是'苹果'的同义词。

但问题是100K记录,每个记录有4-5个同义词。手动输入它们是不可能的。

另一个问题是如果我想对特定记录的同义词进行更改,我将不得不手动执行,这也很耗时。

我想知道有没有其他选择,以便我不需要手动输入同义词?

+2

为什么不以编程方式从您的数据库或100k行的任何位置以编程方式生成您的synonyms义同义词.txt文件? – Ansari 2012-07-12 04:25:17

+0

@Ansari问题是,如果我必须更新30条记录,我将如何更新synonyms在synonyms。 – 2012-07-12 10:01:42

+0

你可以重新生成文件,这将需要几秒钟。我想象的更大的问题是每次发生这种情况都会重新编制索引。 – Ansari 2012-07-12 14:26:56

回答

1

IMO这是接近搜索引擎优化。此外,您可能需要花费很长时间手动管理同义词。

遵循印度电子零售网站正在做什么来容纳同义词。例如,电子零售店已经通过将某个产品belly shoes重命名为购物者倾向于错读和拼错“芭蕾”而改编。他们不会在用户真正搜索它们之前预期它。

因此记录所有返回结果不多的请求(以及其他不满意的客户)。维护索引中的同义词列表。并且在添加新产品时在关键字中包含这些同义词:当添加产品x y z时,自动获取所有同义词到x,yz,并让您的数据输入员从中选择它们。

'type':'synonym' 
'terms':'ballet','belly' 

'type':'synonym' 
'terms':'potato','allu','aloo' 

'type':'product' 
'name':'home garden potato planter' 
'keywords':'allu','aloo' 

'type':'product' 
'name':'aloo mutter fry mix' 
'keywords':'potato','allu','cheese' 
0

我们可以维护索引中的同义词列表。并通过添加新产品在关键字中包含这些同义词。当添加新产品时,它可以将同义词提取到a,b和c。

“类型”:产品的 ‘名’:'monety卡罗衬衫男士 ‘关键字’:‘montey卡罗’,‘衬衫’

例子:Online Shopping Store已经适应了重命名某些产品和拼错名称。