如何确定SOLR索引的字段类型?

我在MySQL表中有两个表字段。 一个是VARCHAR,是分类(分类广告网站)的“标题”。 另一个是TEXT字段,其中包含分类的“文本”。

两个问题:
我该如何确定如何索引这两个字段? (什么字段类型,使用什么类等)

目前,我有一个“ad_id”作为每个广告的唯一标识符,例如“bmw_m3_82398292”。
每当SOLR找到“查询匹配”时,如何让SOLR返回此标识符? (标识符的第一部分实际上是标题字段内容,第二部分是选择的随机数)

谢谢

图式

您的Solr架构很大程度上取决于您的预期搜索行为。 在schema.xml文件中,您将看到一系列选项,如“text”和“string”。 他们的行为不同。

 

字符串字段类型是文字字符串匹配。 它将在SQL语句中像==一样运行。

      

text_ws字段类型执行标记化。 但是, text字段的一个很大的区别是停用词和分隔符以及下限的filter。 注意如何为Lucene索引和Solr查询指定这些filter。 因此,在搜索文本字段时,它将使用这些filter调整查询字词以帮助查找匹配项。

          

例如,在为新闻报道等事情编制索引时,您可能希望以不同方式搜索公司名称和标题。

   

上面的示例允许您进行类似&coname:Intel&headline:processor+specifications的搜索&coname:Intel&headline:processor+specifications并检索完全符合英特尔故事的匹配。

如果你想搜索范围

2.结果字段

您可以在RequestHandler中定义一组标准的返回字段

   category,coname,headline   

您还可以使用fl参数在查询字符串中定义所需的字段:

 /select?indent=on&version=2.2&q=coname%3AIn*&start=0&rows=10&fl=coname%2Cid&qt=standard 

您还可以使用以下field:[x TO *]在查询字词中选择范围 field:[x TO *]语法。 如果您想按日期选择某些广告,可以使用以下内容构建查询

 ad_date:[20100101 TO 20100201] 

在您的查询字词中。 (搜索范围的方法有很多种,我提出的方法是使用整数而不是Date类。)