小编Gra*_*ins的帖子

我如何规范化solr/lucene得分?

我正在努力研究如何提高solr搜索结果的得分.我的应用程序需要从solr结果中获取分数,并根据查询的结果有多好来显示一些"星星".5星=差不多/精确到0星,意味着不能很好地匹配搜索,例如只有一个元素命中.然而,我得到的分数从1.4到0.8660254都返回结果,我会给5星.我需要做的是以某种方式将这些结果转换为百分比,以便我可以用正确的星数来标记这些结果.

我运行的查询给出了1.4分:

euallowed:true AND(等级:"2:1")

给我0.8660254分数的查询是:

euallowed:true AND(等级:"2:1"或等级:"1st")

我已经更新了Similarity,以便tf和idf返回1.0,因为我只对文档中有一个术语而不是文档中该术语的编号感兴趣.这就是我的相似性代码:

import org.apache.lucene.search.Similarity;

public class StudentSearchSimilarity extends Similarity {

    @Override
    public float lengthNorm(String fieldName, int numTerms) {
        return (float) (1.0 / Math.sqrt(numTerms));
    }

    @Override
    public float queryNorm(float sumOfSquaredWeights) {

        return (float) (1.0 / Math.sqrt(sumOfSquaredWeights));

    }

    @Override
    public float sloppyFreq(int distance) {
        return 1.0f / (distance + 1);
    }

    @Override
    public float tf(float freq) {
        return (float) 1.0;
    }

    @Override
    public float idf(int docFreq, int numDocs) {

        //return (float) (Math.log(numDocs / (double) (docFreq + …
Run Code Online (Sandbox Code Playgroud)

lucene search solr normalization tf-idf

15
推荐指数
1
解决办法
1万
查看次数

Zend Form addFilter StripTags不剥离标签

我需要一些帮助清除Zend_Form并向元素添加过滤器.现在我的印象是,当您向表单添加过滤器时,当表单发布时,过滤器作为控制器中的分派的一部分执行.

然而,在测试我的表单时我的恐怖过滤器StripTags似乎没有运行,我在数据中获取带有HTML标签的数据.

我的Form元素看起来像这样.

$address1 = new Zend_Form_Element_Textarea('address1');
    $address1->addFilter('StripTags')
        ->addFilter('StringTrim')            
        ->setAttrib('cols', 30)
        ->setAttrib('rows', 5)
        ->removeDecorator('DtDdWrapper')
        ->removeDecorator('label')
        ->removeDecorator('HtmlTag')
Run Code Online (Sandbox Code Playgroud)

但是,如果我在文本区域中放入一些带有html标签的数据,然后检查表单是否有效使用

$formData = $this->_request->getPost();
if($form->isValid($formData){
    ...
Run Code Online (Sandbox Code Playgroud)

数据随其中的标签一起返回.它只在我通过strip_tags()函数传递数据时删除.

我想我的问题是StipTags应该过滤器,如果是这样,为什么不呢?我在这里想念的是什么

zend-framework zend-form zend-filter-strip-tags

5
推荐指数
1
解决办法
5968
查看次数

上传文件时dojo.io.iframe错误

当尝试使用dojo.io.iframe上传图像文件<2MB时,今天遇到了一个有趣的问题.

我调用了处理表单的函数,但在将表单发布到服务器之前,我收到以下错误:

TypeError:ifd.getElementsByTagName("textarea")[0]未定义

我用于处理表单帖子的函数是:

function uploadnewlogo(){

var logoDiv = dojo.byId('userlogo');
var logoMsg = dojo.byId('uploadmesg');

//prep the io frame to send logo data.
dojo.io.iframe.send({
    url: "/users/profile/changelogo/",
    method: "post",
    handleAs: "text",
    form: dojo.byId('logoUploadFrm'),
    handle: function(data,ioArgs){

        var response = dojo.fromJson(data);


        if(response.status == 'success'){

            //first clear the image
            //dojo.style(logoDiv, "display", "none");
            logoDiv.innerHTML = "";

            //then we update the image
            logoDiv.innerHTML = response.image;

        }else if(response.status == 'error'){

            logoMsg.innerHTML = data.mesg;

        }else{              

            logoMsg.innerHTML = '<div class="error">Whoops! We can not process your image.</div>';
        }

    },
    error: function(data, …
Run Code Online (Sandbox Code Playgroud)

javascript dojo

5
推荐指数
1
解决办法
9786
查看次数

在solr文档中存储n + 1个对象

我正在努力弄清楚如何在solr文档中存储n + 1对象的最佳方法.

我正在将sol/resume文档存储在solr文档中.我正在寻找存储两种不同的数据类型"教育"和"就业"

如果我们看看教育,对象看起来像这样:

{
 "establishment" => 'Oxford',
 "Subject" => 'Computing',
 "Type" => 'Degree',
 "Grade" => '2:1'
}
Run Code Online (Sandbox Code Playgroud)

CV可以包含n + 1个这些对象,具体取决于CV的内容.搜索需要能够看到,当我搜索具有Establishment = Oxford&Subject = Computing&Grade = 2:1的CV时,它与该对象匹配,而不是具有相同主题和等级的不同机构.

一个多值的我认为没有帮助或者可以存储这些类型的对象中的n + 1个.

我的问题是如何设置solr以便能够将这种类型的数据存储在一个"CV"Solr文档中,以便它可以作为索引的一般搜索的一部分进行搜索?

php lucene search solr

5
推荐指数
1
解决办法
237
查看次数

用php替换文件中的字符串

我正在为我的网络应用程序编写一个电子邮件模块,该模块在完成注册等任务时向用户发送html电子邮件.现在,由于此电子邮件的格式可能会发生变化,因此我决定使用模板html页面作为电子邮件,其中包含需要替换的自定义标记,例如%fullname%.

我的函数有一个数组格式的数组(%fullname%=>'Joe Bloggs'); 使用密钥作为标记标识符以及需要替换它的值.

我尝试过以下方法:

        $fp = @fopen('email.html', 'r');

    if($fp)
    {
      while(!feof($fp)){

      $line = fgets($fp);                 

      foreach($data as $value){

          echo $value;
          $repstr = str_replace(key($data), $value, $line);           

      }


      $content .= $repstr;

      }
      fclose($fp);
    }
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?因为目前只有1个标签被取代......我是在正确的道路上还是在数英里之外?

谢谢...

php parsing

4
推荐指数
1
解决办法
2万
查看次数

TSQL动态添加存储过程中的列

您好我正在编写一个大型存储过程,它创建一个动态报表,大小为n列,前6个是常量,其余依赖于传递给过程的几个参数来创建具有所需列的表.

我遇到的问题是使用以下TSQL

DECLARE @columnname VARCHAR(50)
SET @columnname = 'on_' + @description

IF NOT EXISTS(SELECT * FROM syscolumns WHERE id = OBJECT_ID('reports')
       AND NAME = @columnname)
BEGIN
      ALTER TABLE reports ADD @columnname VARCHAR(50) NULL
END
Run Code Online (Sandbox Code Playgroud)

我在上面代码的ALTER TABLE语句中的@columnname上遇到了语法错误.

此外,由于我是新手,我不确定这是否是执行此操作的最佳方式,或者是否有更好的方法在TSQL中生成所需的动态表.

t-sql sql-server stored-procedures

3
推荐指数
1
解决办法
2万
查看次数

删除文件会因现有进程而失败

我遇到了一些我在C#中编写的代码问题.

我正在使用MailMessage和SMTP组件发送文档.我将要发送的文件复制到临时目录(例如c:\ temp),遍历文档并将它们附加到电子邮件中.

电子邮件发送正常,但是当我尝试从临时目录中删除文件时,我收到以下错误:

该进程无法访问该文件,因为该文件正由另一个进程使用

我不明白为什么会这样.下面是处理文档的代码

public void sendDocument(String email, string barcode, int requestid)
    {

        string tempDir = @"c:\temp";

        //first we get the document information from the database.
        Database db = new Database(dbServer, dbName, dbUser, dbPwd);

        List<Document> documents = db.getDocumentByID(barcode);
        int count = 0;
        foreach (Document doc in documents)
        {
            string tempPath = tempDir + "\\" + doc.getBarcode() + ".pdf";
            string sourcePath = doc.getMachineName() + "\\" + doc.getFilePath() + "\\" + doc.getFileName();

            //we now copy the file from the source …
Run Code Online (Sandbox Code Playgroud)

c# email delete-file

2
推荐指数
1
解决办法
3009
查看次数

将邮件联系人添加到 AD 中

我正在寻找有关如何在 AD 中创建邮件联系人的一些指南。这是SO Q#1861336的后续问题。

我想要做的是将大量联系人对象添加到 Active Directory 中的 OU 中。我一直在使用CodeProject上的示例,但是它们仅展​​示如何创建新用户等。

如何使用 C# 创建联系人?它是否类似于创建新用户但具有不同的 LDAP 类型属性?

我的计划是然后运行enable-mailcontact cmdlet powershell 脚本以使Exchange 2010 能够查看GAL 中的联系人。

正如您从我的问题中看到的,我通常不处理 c# 或 Active Directory,因此在我开始使用这把装满子弹的枪之前,任何帮助/指针都会非常有用。

谢谢,

授予

c# active-directory

2
推荐指数
1
解决办法
3899
查看次数

使用dojo发布json数组

嗨,我正在尝试使用dojo将javascript对象数组发回服务器.

我有一组数据,如下所示:

var elements = [
  myobj = {id:"1", name:"myname", title:"mytitle"},
  myobj = {id:"2", name:"myname2", title:"mytitle2"}
] 
Run Code Online (Sandbox Code Playgroud)

我想将此作为json字符串发布回服务器以由PHP脚本处理.但是dojo.toJson只会对单个对象进行seralise.

如何将整个对象数组转换为可以发布到后端进行处理的json字符串?

非常感谢

dojo json

1
推荐指数
1
解决办法
1847
查看次数